Câu hỏi là: Tìm tổng của tất cả các số nguyên tố dưới 2 triệu.Tại sao tôi thất bại Project Euler # 10?
Tôi đã làm rất nhiều điều Sieve of Erastothenes và chương trình bên dưới dường như hoạt động với số lượng nhỏ nghĩa là LIMIT khi 10L tạo 17 làm câu trả lời.
Tôi đã gửi 1179908154 làm câu trả lời, như được sản xuất bởi chương trình sau và không chính xác.
Vui lòng giúp chỉ ra vấn đề. Cảm ơn.
#include <stdio.h>
#define LIMIT 2000000L
int i[LIMIT];
int main()
{
unsigned long int n = 0, k, sum = 0L;
for(n = 0; n < LIMIT; n++)
i[n] = 1;
i[0] = 0;
i[1] = 0;
unsigned long int p = 2L;
while (p*p < LIMIT)
{
k = 2L;
while (p*k < LIMIT)
{
i[p*k] = 0;
k++;
}
p++;
}
for(n = 0; n < LIMIT; n++)
if (i[n] == 1)
{
sum += n;
}
printf("%lu\n",sum);
return 0;
}
cố định bằng cách thay thế lâu dài với lâu dài, và% lu với% llu – idazuwaika
Tôi rất vui vì tôi chạy trong câu hỏi này, tôi đã trải qua nhiều ngày thất vọng về điều này! +1 – DMan