#include <stdio.h>
#include <math.h>
int isprime(long long num)
{
int i;
for(i = 2; i <= sqrt((long double)num); i++)
{
if(num % i == 0) return 1;
}
return 0;
}
void getprime(long long num)
{
long long i;
for(i = 2; i <= num; i++)
{
if(isprime(i) == 0)
{
while(num % i == 0)
{
num = num / i;
printf("%lld\n",i);
if(isprime(num) == 0)
{
printf("%lld\n",num);
return ;
}
}
}
}
}
int main()
{
long long num;
while(1)
{
scanf("%lld", &num);
if(num < 0) break;
if(isprime(num) == 0)
printf("%lld\n", num);
else getprime(num);
printf("\n");
}
return 0;
}
1028 Factoring Large Numbers
最新推荐文章于 2016-08-20 01:50:02 发布
本文提供了一种使用C语言实现的高效素数判断方法,并基于此实现了一个将任意整数分解为素数因子的程序。该程序首先通过isprime函数判断一个数是否为素数,然后利用getprime函数进行质因数分解。
1654

被折叠的 条评论
为什么被折叠?



