|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h> //算出结果最大为6857,和答案不符合,不知道哪里有错误
int main() {
// int i, j;
long long int x, i, j;
x = 600851475143 ;
for (i = 2;; i++) {
while (x % i == 0) {
x = x / i;
}
if (x < i) {
break;
}
}
printf("600851475143的最大质因数为%lld\n", i);
return 0;
}
本帖最后由 jackz007 于 2022-9-7 18:30 编辑
我们可以为 600851475143 分解质因数:
- #include <stdio.h>
- int main(void)
- {
- int c ;
- long long d , k , n ;
- printf("请输入一个正整数 : ") ;
- scanf("%I64d" , & n) ;
- printf("%I64d = " , n) ;
- for(c = 0 , d = n , k = 2 ; k * k < d + 1 ;) {
- if(! (d % k)) {
- if(c) printf(" x ") ;
- printf("%I64d" , k) ;
- d = d / k ;
- c ++ ;
- } else k ++ ;
- }
- if(c) printf(" x ") ;
- printf("%I64d\n" , d) ;
- }
复制代码
编译、运行实况:
- D:\[00.Exerciese.2022]\C>g++ -o x x.c
- D:\[00.Exerciese.2022]\C>x
- 请输入一个正整数 : 600851475143
- 600851475143 = 71 x 839 x 1471 x 6857
- D:\[00.Exerciese.2022]\C>
复制代码
结果表明, 600851475143 一共有 4 个质数因子,其中, 6857 最大,你自己完全可以通过计算器来进行验证。
下面,再来看看所谓的答案 87625999
- D:\[00.Exerciese.2022]\C>x
- 请输入一个正整数 : 87625999
- 87625999 = 71 x 839 x 1471
- D:\[00.Exerciese.2022]\C>
复制代码
可见, 87625999 有 3 个质数因子存在,可见,它的确 不是一个质数!
|
|