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的倍數,依此類推,直到找到一個倍數為質數的倍數。
在主函數中,程式會詢問用戶要查找的範圍,然後遍歷這個範圍內的所有數字,檢查它們是否為質數。如果找到一個質數,程式會檢查它是否比之前找到的最大質數大,如果是,則更新最大質數的值。最後,程式列印出在給定範圍內的最大質數。