C語言最大質數

在C語言中,你可以使用一個簡單的程式來找到一個範圍內的最大質數。以下是一個示例程式,它會詢問用戶要查找哪個範圍內的最大質數,然後列印出結果:

#include <stdio.h>
#include <math.h>

int isPrime(int n) {
    if (n <= 1) return 0;
    if (n <= 3) return 1;
    if (n % 2 == 0 || n % 3 == 0) return 0;
    for (int i = 5; i * i <= n; i += 6) {
        if (n % i == 0 || n % (i + 2) == 0) return 0;
    }
    return 1;
}

int main() {
    printf("請輸入你要查找的最大質數的範圍(例如:1000):");
    int range;
    scanf("%d", &range);

    int maxPrime = 0;
    for (int i = 2; i <= range; i++) {
        if (isPrime(i)) {
            if (maxPrime == 0 || i > maxPrime) {
                maxPrime = i;
            }
        }
    }
    printf("在範圍內的最大質數是:%d\n", maxPrime);
    return 0;
}

這個程式使用了一個isPrime函數來檢查一個數是否為質數。isPrime函數首先檢查數字是否小於等於1,如果是,則它不是質數。然後檢查是否小於等於3,如果是,則它是質數。接著,它檢查數字是否為2的倍數或3的倍數,如果不是,則它檢查是否為5的倍數或7的倍數,依此類推,直到找到一個倍數為質數的倍數。

在主函數中,程式會詢問用戶要查找的範圍,然後遍歷這個範圍內的所有數字,檢查它們是否為質數。如果找到一個質數,程式會檢查它是否比之前找到的最大質數大,如果是,則更新最大質數的值。最後,程式列印出在給定範圍內的最大質數。