此應用程序的第n個主要會收到一些n
。接收到該號碼後,該程序具有顯示質數列表中的第n
素。例如,如果用戶輸入3
,程序應該顯示5
,因爲5
是第三素起始在2
。我知道我的代碼出了問題,但我不知道問題出在哪裏以及我如何解決問題。如何找到用C
#include <stdio.h>
int main() {
int n, i, flag, prime;
int counter = 1;
scanf("%d", &n);
if (n == 1) prime = 2;
else
do{
prime = 3;
for (i = 2; i < prime; i++) {
flag = 1;
if (prime % i == 0) {
flag = 0;
}
}
if (flag == 1)
counter++;
prime++;
} while (counter != n);
if (counter == n)
printf("%d\n", prime);
return 0;
}
你必須說明爲什麼你認爲這個代碼是錯誤的。具體而言,請解釋它打印的輸出內容,您期望的內容以及您爲什麼會這樣想。只是做這樣的練習很可能會給你一個答案。 – 2014-10-20 02:45:57
什麼是錯誤? – chouaib 2014-10-20 02:46:06
不知道如果你關心,但用篩子算法(埃拉托色尼或阿特金斯)將大大加快您的功能更大的數字。 – 2014-10-20 02:48:54