用C语言编写一个判断m是否为素数的函数,如m是素数,函数返回值是1,否则函数返回值为0,函数形式为: int isprime(int m); 在主函数中调用该函数输出1~100之间的素数,要求每行显示5个数。
时间: 2024-02-13 08:07:42 浏览: 35
好的,这是一个经典的算法题。这里提供一种基于试除法的求解方法:
```c
#include <stdio.h>
int isprime(int m) {
if (m < 2) return 0; // 小于2的数都不是素数
for (int i = 2; i * i <= m; i++) { // 试除法,只需枚举到sqrt(m)
if (m % i == 0) return 0;
}
return 1; // 如果上述循环都没有返回0,那么m就是素数
}
int main() {
int cnt = 0;
for (int i = 1; i <= 100; i++) {
if (isprime(i)) {
printf("%d ", i);
cnt++;
if (cnt % 5 == 0) printf("\n"); // 每行显示5个数
}
}
printf("\n");
return 0;
}
```
我们在主函数中调用了 `isprime` 函数,并且按照题目要求输出了1~100之间的素数,每行显示5个数。
相关问题
c语言编写函数prime判断m是否为素数当m为素数时返回1,否则返回0
好的,这个问题我可以回答。以下是 prime 函数的代码:
```c
int prime(int m) {
if (m <= 1) {
return 0;
}
for (int i = 2; i * i <= m; i++) {
if (m % i == 0) {
return 0;
}
}
return 1;
}
```
如果 m 小于等于 1,直接返回 0。如果 m 大于 1,就从 2 开始循环,到 m 的平方根为止。如果发现存在能整除 m 的数,就返回 0,否则返回 1,表示 m 是素数。
c语言编写一个判断m是否为素数的函数,如果m是素数,函数返回值是1,否则函数返回值为0,函数形式为int isprime(int m),在主函数中调用该函数求输出1到100之间的素数,要求每行显示五个数
好的,以下是实现判断素数和输出1到100之间素数的代码:
```c
#include <stdio.h>
int isprime(int m); // 判断素数的函数声明
int main() {
int count = 0; // 计数器,每行显示五个数
for (int i = 1; i <= 100; i++) { // 遍历1到100之间的整数
if (isprime(i)) { // 如果是素数
printf("%d ", i);
count++;
if (count == 5) { // 每行显示五个数
printf("\n");
count = 0;
}
}
}
return 0;
}
int isprime(int m) { // 判断素数的函数实现
if (m <= 1) { // 小于等于1的数不是素数
return 0;
}
for (int i = 2; i * i <= m; i++) { // 从2到sqrt(m)遍历
if (m % i == 0) { // 如果m能被i整除,说明m不是素数
return 0;
}
}
return 1; // 如果上面的循环都没有返回0,说明m是素数
}
```
首先定义一个 `isprime` 函数,用来判断一个整数是否为素数。函数使用了一个循环,从2到 $\sqrt{m}$ 遍历所有可能的因子,如果找到了一个能整除m的因子,说明m不是素数,返回0;否则返回1。在主函数中,使用一个循环遍历1到100之间的整数,如果是素数则输出,并且每行显示五个数。