C語言找最大質數
在C語言中,你可以使用一個簡單的迴圈來找到一個範圍內的最大質數。以下是一個示例程式,它會詢問用戶想要查找哪個範圍內的最大質數,然後列印出結果:
#include <stdio.h>
#include <math.h>
int isPrime(int n) {
if (n <= 1) return 0; // 1 is not considered a prime number
if (n <= 3) return 1; // 2 and 3 are the only prime numbers less than 4
if (n % 2 == 0 || n % 3 == 0) return 0; // If n is even or divisible by 3, it's not prime
int sqrtN = (int)sqrt(n);
for (int i = 5; i <= sqrtN; i += 6) {
if (n % i == 0 && n % (i + 2) == 0) return 0; // If n is divisible by either i or i+2, it's not prime
}
return 1; // n is prime
}
int main() {
printf("請輸入你要查找的最大質數範圍(例如: 100): ");
int maxRange;
scanf("%d", &maxRange);
int maxPrime = 0;
for (int i = 2; i <= maxRange; i++) {
if (isPrime(i)) {
if (i > maxPrime) maxPrime = i;
}
}
printf("在%d以內的最大質數是: %d\n", maxRange, maxPrime);
return 0;
}
這個程式使用了isPrime
函數來檢查一個數是否為質數。這個函數首先檢查數字是否為1(因為1不是質數),然後檢查是否為2或3的倍數,最後檢查是否為任何其他小於等於sqrt(n)
的質數的倍數。
在main
函數中,程式會詢問用戶想要查找哪個範圍內的最大質數,然後使用一個迴圈來檢查從2到這個範圍內的所有數字是否為質數。如果發現一個比目前記錄的最大的質數更大的質數,程式就會更新這個記錄。最後,程式列印出在給定範圍內的最大質數。