|
10鱼币
#include <stdio.h>
#include <math.h>
int main()
{
long long int i,j,k,l,num=600851475143;
_Bool flag;
for (i=1;i<sqrt(j);i++,flag=1)
{
for (j=num-1;j<num;j--)
if (j%i==0)
{
flag=0;
}
if (flag)
{
if (num%j==0)
{
goto FINDIT;
}
}
}
FINDIT:printf("600851475143的的最大质因子是%d\n",j);
return 0;
}
我感觉我写的没错但是编译器没算出来求解
这个代码哪里错了怎么改呢
Python - p = 600851475143
- n = 2
- while n*n < p:
- while not p%n:
- p /= n
- n += 1
- print(p)
复制代码
C - #include <stdio.h>
- int main(){
- long long p = 600851475143;
- for(int n = 2; n*n < p; n++)
- while(!(p%n)) p /= n;
- printf("%lld", p);
- return 0;
- }
复制代码
输出结果:
|
|