码迷,mamicode.com
首页 > 其他好文 > 详细

Hrbust1328 相等的最小公倍数 (筛素数,素因子分解)

时间:2014-05-03 16:44:45      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:acm   算法   dp   数论   c++   

本文出自:http://blog.csdn.net/svitter/


题意:

求解An 与 An-1是否相等。

n分为两个情况——

1.n为素数,

2.n为合数。

=  =好像说了个废话。。素数的时候,可以直接输出no,因为素数不可能和An-1相等。合数的时候,如果n是a^b次方,那么也是NO。原因很简单,之前数字的最小公倍数的n的因子次方数,不能超过n的次方数。


//============================================================================
// Name        : 数论问题.cpp
// Author      :
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;
#define lln long long int
#define MAXN 1000001

bool vis[MAXN];
int prime[100000];
int p;

void Prime()
{
    //0为不是合数,1为是合数
    memset(vis, 1, sizeof(vis));
    p = 0;
    int i, j;
    for(i = 2; i < MAXN; i++)
    {
        if(vis[i])
        {
            prime[p++] = i;
            for(j = 2 * i; j < MAXN; j += i)
                vis[j] = 0;
        }
        else
            continue;
    }
}

void ace(){
	//init
	Prime();
	//work point
	int t, i;
	//num
	int a;
	int num;

	cin >> t;
	while(t--){
		scanf("%d", &a);
		if(a == 2)
		{
            printf("NO\n");
            continue;
        }
		if(vis[a])
            printf("NO\n");
        else
        {
            num = 0;
            for(i = 0 ; i <= p; i++)
            {
                if(a % prime[i] == 0)
                {
                    num++;
                    while(a % prime[i] == 0)
                        a /= prime[i];
                }
                if(a == 1)
                    break;
            }
            if(num >= 2)
                printf("YES\n");
            else
                printf("NO\n");
        }
	}
}

int main() {
	ace();
	return 0;
}


Hrbust1328 相等的最小公倍数 (筛素数,素因子分解),布布扣,bubuko.com

Hrbust1328 相等的最小公倍数 (筛素数,素因子分解)

标签:acm   算法   dp   数论   c++   

原文地址:http://blog.csdn.net/svitter/article/details/24886961

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!