【发布时间】:2011-07-29 07:59:24
【问题描述】:
可能重复:
long long in C/C++
为项目欧拉问题编写一个简单的程序。拒绝编译,因为“整数常量对于“long”类型来说太大了”,即使它应该在 unsigned long long 的大小限制内。使用 dev-c++ 编译器。
有问题的代码:
#include <iostream>
bool isprime (unsigned long long i)
{
if(i==1||i==0) return false;
if(i==2) return true;
for(unsigned long long k=2;k!=i-1;k++)
{
if(i%k==0) return false;
}
return true;
}
int main()
{
for(unsigned long long i=600851475143;i>=0;i--) //problematic line
{
if(isprime(i))
{
std::cout<<i;
std::cin.get();
return 0;
}
}
}
【问题讨论】:
-
看起来像projecteuler.net/problem=3 :-) 在尝试解决相同问题时找到了这个答案 :-)