📅  最后修改于: 2023-12-03 14:59:38.117000             🧑  作者: Mango
编写一个程序,输入一个整数,判断这个整数是否为质数。
质数定义为除了1和自己,不能被其他数整除的正整数。因此我们可以从2开始,依次判断这个数能否被2至它的平方根之间的数整除。如果都不能被整除,则说明这个数是质数。
#include <stdio.h>
#include <math.h>
int main() {
int n, i, is_prime = 1;
printf("请输入一个整数:");
scanf("%d", &n);
if (n <= 1) {
is_prime = 0; //1不是质数
} else {
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
is_prime = 0;
break;
}
}
}
if (is_prime) {
printf("%d是质数\n", n);
} else {
printf("%d不是质数\n", n);
}
return 0;
}
这段代码首先通过scanf
函数输入一个整数。然后判断这个数是否小于等于1,如果小于等于1则不是质数;否则从2开始,到这个数的平方根之间的数,逐个判断是否能被整除。如果能被整除,则说明这个数不是质数,将is_prime
标志位设为0并跳出循环。最后根据is_prime
的值输出判断结果。
判断一个数是否为质数是常见的算法问题,其解法也比较简单。在实现时应当注意输入的数字可能为负数和0的情况,以及循环范围的确定等。