#include <stdio.h>
#include <math.h>
int main() {
int X, i;
int isPrime = 1; // 假設X是質數
// 提示用戶輸入
printf("請輸入一個大於1的正整數X: ");
scanf("%d", &X);
// 檢查X是否大於1
if (X <= 1) {
printf("X必須大於1。\n");
return 1; // 返回錯誤代碼
}
// 判斷X是否為質數
for (i = 2; i <= sqrt(X); ++i) {
if (X % i == 0) {
isPrime = 0; // 發現可以整除X的數,說明X不是質數
break;
}
}
if (isPrime) {
printf("%d是質數。\n", X);
} else {
printf("%d不是質數。\n", X);
}
return 0;
}
在這個程式中,我們首先使用scanf函數接收使用者的輸入。接著,使用一個從2開始到sqrt(X)(X的平方根)的迴圈來檢查是否存在能夠整除X的數。這裡使用sqrt(X)作為迴圈的上限是因為一個大於1的合數(非質數)必定有一個不大於它平方根的因數。如果在迴圈中找到了這樣的數,就把isPrime標記為0(表示非質數),並跳出迴圈。最後,根據isPrime的值列印出相應的消息。