c语言如何判断一个数是整数还是素数

如题所述

第1个回答  2024-04-16
以下是判断代码:
#include <math.h>
#include <stdio.h>

int is_prime(int num) {
if (num <= 1) {
return 0; // 小于等于1的数不是素数
}
if (num <= 3) {
return 1; // 2和3是素数
}
if (num % 2 == 0 || num % 3 == 0) {
return 0; // 排除能被2或3整除的数
}
// 只需检查到sqrt(num),因为如果num有因子,必有一个小于等于它的算术平方根
for (int i = 5; i * i <= num; i += 6) {
if (num % i == 0 || num % (i + 2) == 0) {
return 0; // 若能被5或者能被5+2整除的数,不是素数
}
}
return 1; // 其他情况是素数
}

int main() {
int number;
printf("Enter an integer: ");
scanf("%d", &number);

if (is_prime(number)) {
printf("%d is a prime number.\n", number);
} else {
printf("%d is not a prime number.\n", number);
}

return 0;
}