素數定義:大於 1 的自然數,除 1 和自身外無其他因數。試除法只需檢查至 √n,因若 n = a×b 且 a ≤ b,則 a ≤ √n。
#include <stdio.h>
#include <math.h>
int is_prime(int n) {
if (n <= 1) return 0;
int limit = (int)sqrt(n);
for (int i = 2; i <= limit; i++)
if (n % i == 0) return 0;
return 1;
}
int main() {
int n;
printf("請輸入大於1的正整數:");
scanf("%d", &n);
printf("%d %s素數\n", n, is_prime(n) ? "是" : "不是");
return 0;
}
請輸入大於1的正整數:8
8 不是素數
請輸入大於1的正整數:17
17 是素數
i += 2)。