#include <stdio.h> int main(){ int n,j,i,num=0,a[500]; do{ scanf(%d,\\&n); }while(n<2||n>50000); for(i=2;i<n;i++) a[i]=1; for(j=2;j<i;j++){ if(i%j==0) a[i]=0;}
时间: 2024-03-11 15:51:34 浏览: 101
#include <stdio.h>
4星 · 用户满意度95%
这是一段 C 语言代码,但是它存在一些问题,无法编译通过。可能是因为缺少引号,导致编译器无法正确识别输入的数字。正确的代码应该是这样的:
```c
#include <stdio.h>
int main() {
int n, j, i, num = 0, a[500];
do {
scanf("%d", &n); // 这里需要加上双引号
} while (n < 2 || n > 50000);
for (i = 2; i < n; i++) {
a[i] = 1;
for (j = 2; j < i; j++) {
if (i % j == 0) {
a[i] = 0;
break;
}
}
if (a[i] == 1) {
printf("%d ", i);
num++;
}
}
printf("\n一共有%d个质数\n", num);
return 0;
}
```
这段代码的功能是求出小于 n 的所有质数,并输出它们的个数。
阅读全文