|
发表于 2019-3-9 16:27:53
|
显示全部楼层
回帖奖励 +10 鱼币
本帖最后由 jackz007 于 2019-3-9 16:35 编辑
- include <stdio.h>
- #include <math.h>
- #define BIG 600851475143
- int main()
- {
- long long b , c , d , i , j , r ;
- bool f ;
- d = (long long)(sqrt(BIG) + 1) ; // 确定循环上限
- for(i = d ; i > 1 ; i --) { // 输出所有可以整除 BIG 的因数
- r = (long long)(BIG % i) ; // BIG 对 i 取余
- if(! r) printf("%lld\n" , i) ; // r = 0 代表 BIG 可以被 i 整除
- }
- for(i = d ; i > 1 ; i --) { // 在所有可以整除 BIG 的因数中挑选最大的质数
- r = (long long)(BIG % i) ; // BIG 对 i 取余
- if(! r) { // r = 0 代表 BIG 可以被 i 整除
- f = true ; // 初始化素数标志为真
- b = (long long)(sqrt(i) + 1) ; // 确定循环上限
- for(j = 2 ; j < b ; j ++) { // 循环判定 i 是否为素数
- c = (long long)(i % j) ;
- if(! c) { // c = 0 代表 i 可以被 j 整除
- f = false ; // 置素数标志为假
- break ;
- }
- }
- if(f) { // 如果 i 是素数
- printf("最大素数是:%lld\n" , i) ;
- break ;
- }
- }
- }
- }
复制代码
运行实况:
F:\[2019]\00.00.Exercise\C\longlong>x
486847
104441
59569
6857
1471
839
71
最大质数是:6857
F:\[2019]\00.00.Exercise\C\longlong> |
|