printf 转换 long long 时出现问题

2024-03-25

我一直在研究一个项目欧拉问题,该问题本质上迫使您使用具有大存储空间的数据类型。

#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 编译器。我应该怎么办?


你应该(重新)阅读文档 http://linux.die.net/man/3/printf, 我猜。

%ll从此没用ll不是一个完整的说明符,它只是实际转换说明符的修饰符,应该遵循它。

Try %lld.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

printf 转换 long long 时出现问题 的相关文章

随机推荐