本题目要求读入1个正整数A,判断A是否为素数。 小贴士:反过来考虑,只要有一次整除了,就不是素数,循环break,不要继续算了。还可以加入标志法,flag的初值为1,一旦整除了,flag置0。输出结果根据flag的值是0还是1来判断。当然也可不用标志法。(使用C语言编程)
时间: 2024-11-13 08:25:25 浏览: 36
要编写一个C语言程序来判断输入的正整数A是否为素数,可以按照下面的步骤进行:
```c
#include <stdio.h>
int main() {
int A, i, flag = 1; // 初始设置flag为1表示可能是素数
printf("请输入一个正整数: ");
scanf("%d", &A);
if (A <= 1) { // 素数大于1,1不算素数
printf("%d 不是素数\n", A);
} else {
for (i = 2; i * i <= A; i++) { // 只需检查到根号A,若存在因子则A不是素数
if (A % i == 0) { // 如果找到因子
flag = 0; // 标志变为0,表示找到了非素数因子
break;
}
}
if (flag) {
printf("%d 是素数\n", A);
} else {
printf("%d 不是素数\n", A);
}
}
return 0;
}
```
在这个程序中,我们首先读取用户输入的整数A,然后从2开始遍历到A的平方根(因为如果A有一个因子大于其平方根,那么必然有一个对应小于等于平方根的因子)。如果遇到能整除A的因子,我们就将`flag`设为0,并跳出循环。最后,根据`flag`的值判断A是否为素数。
阅读全文