我一直在处理一个euler问题,它本质上强迫你使用具有大存储的数据类型。printf转换问题很长
#include <stdio.h>
#include <conio.h>
#define num 600851475143
int main()
{
long long i, j, count=0, number=num, k;
for(i=2;number!=1;i++)
{
count=0;
for(j=1;j<=i;j++)
{
if((i%j)==0)
{
count++;
}
}
for(k=0;k<100000000;k++)
{}
if(count==2)
{
printf(" %d\n", i);
if(number%i==0)
{
number/=i;
printf(" %d\n", number);
printf("%d\n", i);
i=2;
}
}
}
getch();
return 0;
}
当我编译并运行该程序时,没有打印任何号码。我尝试了各种printf转换%ll,%l,我已经改变了数据类型。我正在使用GNU GCC编译器。我该怎么办?
我相信这是在条件的问题,如果(编号%我== 0),因为它不打印,即使我想给printf(“你好”)的块中任何东西。是否有可能对数据里面有大小限制? – user1794004
@ user1794004可能是您的终端,它在这里打印(并且整体上令人惊讶的是不起作用)。 –