用C语言输入一个正整数m,判断它是不是素数,每组输入三个数?
1个回答
展开全部
要判断一个正整数m是否为素数,可以使用以下算法:
1. 将m除以2到m-1之间的所有整数,如果能够整除其中任意一个数,则该数不是素数。
2. 如果m不能被2到m-1之间的任何整数整除,则它是素数。
按照题目要求,每组输入三个数。下面是一个示例程序,可以连续输入多组三个数进行判断:
```
#include <stdio.h>
// 判断一个正整数是否为素数
int is_prime(int n)
{
int i;
if (n < 2) {
return 0; // 0和1不是素数
}
for (i = 2; i <= n/2; ++i) {
if (n % i == 0) {
return 0; // 能够整除则不是素数
}
}
return 1; // 没有能够整除的数则是素数
}
int main()
{
int m, n, p;
while (scanf("%d%d%d", &m, &n, &p) == 3) {
printf("%d: %s\n", m, is_prime(m) ? "yes" : "no");
printf("%d: %s\n", n, is_prime(n) ? "yes" : "no");
printf("%d: %s\n", p, is_prime(p) ? "yes" : "no");
}
return 0;
}
```
在这个程序中,`is_prime`函数用于判断一个正整数是否为素数。在`main`函数中,通过`scanf`函数连续输入多组三个数(m、n和p),并逐个调用`is_prime`函数进行判断。最后,根据结果输出相应的信息。
注意,`scanf`函数与`printf`函数类似,都是C语言标准库提供的函数。通过使用`%d`格式化字符串,可以读取或输出一个整数。
1. 将m除以2到m-1之间的所有整数,如果能够整除其中任意一个数,则该数不是素数。
2. 如果m不能被2到m-1之间的任何整数整除,则它是素数。
按照题目要求,每组输入三个数。下面是一个示例程序,可以连续输入多组三个数进行判断:
```
#include <stdio.h>
// 判断一个正整数是否为素数
int is_prime(int n)
{
int i;
if (n < 2) {
return 0; // 0和1不是素数
}
for (i = 2; i <= n/2; ++i) {
if (n % i == 0) {
return 0; // 能够整除则不是素数
}
}
return 1; // 没有能够整除的数则是素数
}
int main()
{
int m, n, p;
while (scanf("%d%d%d", &m, &n, &p) == 3) {
printf("%d: %s\n", m, is_prime(m) ? "yes" : "no");
printf("%d: %s\n", n, is_prime(n) ? "yes" : "no");
printf("%d: %s\n", p, is_prime(p) ? "yes" : "no");
}
return 0;
}
```
在这个程序中,`is_prime`函数用于判断一个正整数是否为素数。在`main`函数中,通过`scanf`函数连续输入多组三个数(m、n和p),并逐个调用`is_prime`函数进行判断。最后,根据结果输出相应的信息。
注意,`scanf`函数与`printf`函数类似,都是C语言标准库提供的函数。通过使用`%d`格式化字符串,可以读取或输出一个整数。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询