प्रश्न है: 2 मिलियन से नीचे के सभी प्राइम्स का योग खोजें।मैं प्रोजेक्ट यूलर # 10 क्यों विफल कर सकता हूं?
मैंने बहुत अधिक एस्ट्रोथेनेस चीज़ों की चलनी की, और नीचे दिया गया प्रोग्राम छोटी संख्या के लिए काम करता प्रतीत होता है यानी एलआईटी को परिभाषित करता है क्योंकि 10 एल उत्तर के रूप में 17 उत्पादन करता है।
मैंने निम्नलिखित प्रोग्राम द्वारा उत्पादित उत्तर के रूप में 1179908154 सबमिट किया, और यह गलत था।
कृपया समस्या को इंगित करने में सहायता करें। धन्यवाद।
#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;
}
% LLU साथ लंबे और% लू के साथ लंबे समय से बदलकर इसे ठीक – idazuwaika
मुझे खुशी है मैं इस सवाल में भाग गया, मैंने इस पर कई निराश दिन बिताए! +1 – DMan