更新时间:2022-12-07 07:54:41
你这样的政策的遗体修复示例:
#包括LT&;&stdio.h中GT;诠释主要(无效){
诠释N,I,旗,素;
INT计数器= 1; scanf函数(%d个,&安培; N);
如果(N == 1)
素= 2;
其他{
素= 1;
做{
黄金+ = 2;
标志= 1;
对于(i = 3; I<素,I + = 2){
如果(素%我== 0){
标志= 0;
打破;
}
}
如果(标志== 1)
反++;
}而(计数器= N!);
}
的printf(%d个\\ N,素数); 返回0;
}
This application will receive a number n
. After receiving this number, the program has to show the n
-th prime in the list of primes. For example, if the user enters 3
, the program is supposed to display 5
, because 5
is the third prime starting at 2
. I know that something is wrong with my code but I don't know where the problem is and how I can fix it.
#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;
}
Fix sample of remains of your policy like this :
#include<stdio.h>
int main(void){
int n, i, flag, prime;
int counter = 1;
scanf("%d", &n);
if (n == 1)
prime = 2;
else {
prime = 1;
do{
prime += 2;
flag = 1;
for (i = 3; i < prime; i+=2){
if (prime % i == 0) {
flag = 0;
break;
}
}
if(flag == 1)
counter++;
} while (counter != n);
}
printf("%d\n", prime);
return 0;
}