#include <stdio.h> int prime(int x); int main() { int a; for(a=100;a<=200;a++) if(prime(a)) printf(" %d ",a); return 0; } int prime(int x) { if(x<=1) return 0; for(int i=2;i*i<=x;++i) if(x%i==0) return 0; else return 1; }
时间: 2024-03-23 19:41:25 浏览: 14
这段代码的问题在于 `prime` 函数的返回值。在 `for` 循环中,如果 `x` 能够被某个数整除,就返回 0,表示不是素数;否则,就返回 1,表示是素数。但是,这个逻辑是不正确的,因为如果 `x` 能够被某个数整除,就一定不是素数,应该直接返回 0;只有当 `x` 不能被任何数整除时,才能返回 1,表示是素数。因此,需要修改 `prime` 函数的逻辑,让它正确地判断一个数是否为素数。
修改后的代码如下:
```c
#include <stdio.h>
int prime(int x);
int main() {
int a;
for(a = 100; a <= 200; a++) {
if(prime(a)) {
printf("%d ", a);
}
}
return 0;
}
int prime(int x) {
if(x <= 1) {
return 0;
}
for(int i = 2; i * i <= x; ++i) {
if(x % i == 0) {
return 0;
}
}
return 1;
}
```
这个程序中,`prime` 函数的逻辑修改为:如果 `x` 小于等于 1,直接返回 0;否则,从 2 开始逐个试除,如果能够整除,则返回 0,表示不是素数;如果试除到 $\sqrt{x}$ 仍然没有找到能够整除的数,就返回 1,表示是素数。主函数中,依次判断 100 到 200 之间的数,如果是素数,就输出。
相关问题
题目:判断m是否为素数。 #include <stdio.h> void wwjt(); int fun(int n)
题目给出了函数名为fun,参数为整数n,但是函数体并没有给出。同时,代码中还有一个没有用到的函数wwjt,可以删除掉。下面给出一个简单的判断素数的函数实现:
```c
#include <stdio.h>
int is_prime(int m) {
if (m <= 1) {
return 0;
}
for (int i = 2; i * i <= m; i++) {
if (m % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m;
scanf("%d", &m);
if (is_prime(m)) {
printf("%d是素数\n", m);
} else {
printf("%d不是素数\n", m);
}
return 0;
}
```
其中is_prime函数用于判断一个数是否为素数,如果是则返回1,否则返回0。在主函数中读入一个整数m,然后调用is_prime函数判断m是否为素数,输出相应的信息。
用c语言判断m是否为素数,开头为#include<stdio.h>void wwjt ()int fun(int m){
可以使用以下代码判断m是否为素数:
```
#include <stdio.h>
int is_prime(int m) {
int i;
if (m < 2) {
return 0;
}
for (i = 2; i * i <= m; i++) {
if (m % i == 0) {
return 0;
}
}
return 1;
}
void wwjt() {
int m;
printf("请输入一个整数:");
scanf("%d", &m);
if (is_prime(m)) {
printf("%d是素数\n", m);
} else {
printf("%d不是素数\n", m);
}
}
int main() {
wwjt();
return 0;
}
```
其中,`is_prime` 函数用来判断一个整数是否为素数,如果是则返回1,否则返回0。`wwjt` 函数用来调用 `is_prime` 函数并输出结果。在主函数中调用 `wwjt` 函数即可。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)