int prime(int);/* prime函数声明*/ main( ) { int m,flag; for(m=2;m<=100;m+=1) { flag=prime(m); if( ) printf(“%4d”,m); } } int prime( ) { int i,flag; for(i=2;i<a;i++) if(a%i==0) ; if(i==a) flag=1; else flag=0; return ; }
时间: 2024-03-24 15:35:55 浏览: 61
EDA/PLD中的教你如何加密/弄乱C源代码
这段代码中存在一些问题,需要进行修改。下面是修改后的代码:
```c
#include <stdio.h>
int prime(int);/* prime函数声明*/
int main() {
int m, flag;
for (m = 2; m <= 100; m++) {
flag = prime(m);
if (flag == 1) {
printf("%4d", m);
}
}
return 0;
}
int prime(int a) {
int i, flag;
for (i = 2; i < a; i++) {
if (a % i == 0) {
flag = 0;
break;
}
}
if (i == a) {
flag = 1;
} else {
flag = 0;
}
return flag;
}
```
在修改后的程序中,`prime()` 函数和主函数的参数和变量名都已经补全。`prime()` 函数中使用了一个循环,从 2 到 `a` 的前一个数进行遍历,如果发现 `a` 能被整除,则不是素数,将 flag 置为 0,并跳出循环;如果循环执行完毕后 `i == a`,则是素数,将 flag 置为 1。在主函数中,使用一个循环遍历 2 到 100 的所有整数,如果是素数,则输出。
阅读全文