c语言随机输入一个正整数判断一个数是否是素数
素数指的是只能被1和自身整除的正整数,即除了1和本身以外没有其他因数的数。
以下是判断一个数是否是素数的C语言程序:
#include <stdio.h>
#include <math.h>
int main() {
int num, i, flag = 0;
printf("请输入一个正整数: ");
scanf("%d", &num);
for(i = 2; i <= sqrt(num); i++) {
if(num % i == 0) {
flag = 1;
break;
}
}
if(num == 1) {
printf("1既不是素数也不是合数");
} else {
if(flag == 0) {
printf("%d是素数", num);
} else {
printf("%d不是素数", num);
}
}
return 0;
}
程序中,先通过scanf()函数获取用户输入的正整数,然后用一个for循环从2开始遍历到该数的平方根,判断该数是否能被整除。如果存在一个因数能够整除这个数,那么它就不是素数,否则就是素数。由于1既不是素数也不是合数,所以需要针对1进行特判。
需要注意的是,判断素数时只需要遍历到该数的平方根即可,因为如果该数有一个大于平方根的因数,那么它一定也有一个小于平方根的因数。这样可以减少不必要的计算
原文地址: https://www.cveoy.top/t/topic/hixB 著作权归作者所有。请勿转载和采集!