可以使用以下C语言程序来判断一个由键盘输入的数M是否是素数:
#include <stdio.h>
#include <math.h>
int main() {
int M, i;
scanf("%d", &M); // 从键盘读取数字M
// 1不是素数,0和负数也不是
if (M <= 1) {
printf("%d 不是素数。\n", M);
} else {
int isPrime = 1; // 假设M是素数
for (i = 2; i <= sqrt(M); i++) { // 只需检查到sqrt(M)
if (M % i == 0) { // 如果M能够被i整除
isPrime = 0; // M不是素数
break; // 不需要继续循环
}
}
if (isPrime) {
printf("%d 是素数。\n", M);
} else {
printf("%d 不是素数。\n", M);
}
}
return 0;
}
这个程序首先从用户那里接收一个整数M。接着,它检查这个数是否小于或等于1,这种情况下M不是素数。如果M大于1,它使用一个for循环来检查M是否有除了1和它自身以外的因数。这里使用sqrt(M)
作为循环条件,因为一个合数(非素数)必定有一个不大于其平方根的因数。如果在循环过程中找到了一个因数,那么变量isPrime
被设置为0,表示M不是素数。如果没有找到因数,那么M就是素数。