#include <stdio.h>
#define num 600851475143
int prime(long long n)
{
int r = 0 ;
long long i ;
if(n > 1) {
if((n % 2) && (n % 3) && (n % 5) && (n % 7)) {
for(r ++ , i = 3 ; i * i <= n ; i += 2) {
if(! (n % i)) {
r -- ;
break ;
}
}
} else if ((n == 2) || (n == 3) || (n == 5) || (n == 7)) {
r ++ ;
}
}
return r ;
}
main(void)
{
long long d , i , k ;
for(d = 0 , i = 2 ; i < num ; i ++) {
if(! (num % i)) {
k = num / i ;
if(prime(k)) {
d = k ;
break ;
}
}
}
if(d) printf("这个数的最大质因数是 : %I64d\n" , d) ;
else printf("这个数没有质因数。\n") ;
}
编译、运行实况D:\0002.Exercise\C>cl x2.c
用于 x86 的 Microsoft (R) C/C++ 优化编译器 19.28.29334 版
版权所有(C) Microsoft Corporation。保留所有权利。
x2.c
Microsoft (R) Incremental Linker Version 14.28.29334.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:x2.exe
x2.obj
D:\0002.Exercise\C>x2
这个数的最大质因数是 : 6857
D:\0002.Exercise\C>
|