|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目:编写一个程序,求解 600851475143 的最大质数因子是多少?
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
long long target, mid = 0, test,re;
//target用来表示最大质数因子,mid用来判断target是否为质数,
//test用来用来测试target是否为质数,re用来表示600851475141与target的余数
for(target = 600851475141;target > 0;target = target - 2)
{
//re为0则target是600851475143的因数,反之则不是
re = 600851475143 % target;
//mid为0则target是质数,反之则不是
for(test = 2;test < target;test++)
{
if(target % test == 0)
{
mid = 1;
break;
}
}
//因为target是600851475143倒着找因数的,所以第一个满足余数为0且为质数的target就是最大质数因子
if(re == 0 && mid == 0)
{
printf("600851475143 的最大质数因子是%11d", target);
break;
}
}
return 0;
}
- for(target = 600851475141;target > 0;target = target - 2)//数太大,每次减2,用时太长
复制代码
|
|