C语言 输入一个正整数m(m>1),判断该数是否为素数。 输入格式: 首先输入测试组数T,然后输入T组测试数据。每组测试输入一个正整数m。 输出格式: 对于每组测试,若m为素数则输出yes;反之输出no。 输入样例: 3 9 3 7 输出样例: no yes yes
时间: 2024-10-12 13:17:23 浏览: 97
在C语言中,你可以编写一个程序来判断一个给定的正整数m是否为素数。这里是一个简单的函数实现方法:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int m) {
if (m <= 1) // 1不是素数
return false;
if (m == 2) // 2是最小的素数
return true;
if (m % 2 == 0) // 偶数除2必有余数,所以如果能被2整除,则非素数
return false;
// 判断是否为质数,只需检查到根号m即可
for (int i = 3; i * i <= m; i += 2) {
if (m % i == 0)
return false;
}
return true;
}
int main() {
int T;
scanf("%d", &T); // 读取测试组数
while (T--) {
int m;
scanf("%d", &m);
if (is_prime(m)) {
printf("yes\n");
} else {
printf("no\n");
}
}
return 0;
}
```
上述代码首先检查m是否小于等于1,或者是偶数,接着只检查奇数因子直到其平方根。如果找到因子,则m不是素数,返回false;否则返回true。
阅读全文