功能:判断m是否为素数,若是返回1,否则返回0。 请修改下列程序,使其输出正确结果 /***********FOUND***********/ 后是有问题的代码 #include <stdio.h> /**********FOUND**********/ void fun( int n) { int i,k=1; if(m<=1) k=0; /**********FOUND**********/ for(i=1;i<m;i++) /**********FOUND**********/ if(m%i=0) k=0; /**********FOUND**********/ return m; } int main() { int m,k=0; for(m=1;m<100;m++) if(fun(m)==1) { printf("%4d",m);k++; if(k%5==0) printf("\n"); } }
时间: 2023-07-18 13:47:16 浏览: 98
修改后的程序如下:
```c
#include <stdio.h>
int is_prime(int m) { // 修改函数名为 is_prime,参数名为 m
int i;
if(m<=1) return 0; // 将 k=0 改为返回 0
for(i=2;i<m;i++) // 改为从 2 开始循环
if(m%i==0) return 0; // 如果有因子,则不是素数,返回 0
return 1; // 否则是素数,返回 1
}
int main() {
int m,k=0;
for(m=1;m<100;m++)
if(is_prime(m)==1) {
printf("%4d",m);k++;
if(k%5==0) printf("\n");
}
return 0; // 添加返回值
}
```
主要修改点如下:
1. 修改函数名为 `is_prime`,参数名为 `m`。
2. 将 `k=0` 改为返回 0。
3. 修改循环从 2 开始。
4. 判断是否是因子时,应该是 `m%i==0`。
5. 如果有因子,则不是素数,返回 0。
6. 否则是素数,返回 1。
7. 添加 `return 0`。
相关问题
1) 功能:判断m是否为素数,若是返回1,否则返回0。
以下是一个简单的判断素数的 C++ 代码实现:
```cpp
int isPrime(int m) {
if (m < 2) {
return 0;
}
for (int i = 2; i <= sqrt(m); i++) {
if (m % i == 0) {
return 0;
}
}
return 1;
}
```
代码中首先判断输入的数字是否小于 2,若小于 2 则不是素数,直接返回 0。然后从 2 到 sqrt(m)(开平方)的范围内循环判断 m 是否能被整除,如果存在一个数可以整除 m,则说明 m 不是素数,返回 0;否则说明 m 是素数,返回 1。
用c语言实现:判断m是否为素数,若是返回1,否则返回0
好的,这是一个关于程序的技术问题,我可以回答。以下是使用C语言判断一个数是否是素数的代码:
```
#include <stdio.h>
int prime(int n) {
int i;
for (i = 2; i < n; i++) {
if (n % i == 0) {
return 0;
}
}
return n > 1;
}
int main() {
int m = 17;
int result = prime(m);
printf("%d\n", result);
return 0;
}
```
这段程序中的 prime 函数可以判断一个数是否为素数,如果是,返回1,否则返回0。在主函数中,我们调用 prime 函数并传入一个数,然后输出结果。在这个例子中,我们判断的是 17 是否为素数,输出结果为 1,表示是素数。