阿摩線上測驗 登入

申論題資訊

試卷:98年 - 098年地方4等_資訊處理#32435
科目:程式設計
年份:98年
排序:0

題組內容

二、設計一 C 語言程式:

申論題內容

⑵判斷 X 是否為質數(prime number)。(10 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
#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的值列印出相應的消息。