在此示例中,您將學習如何打印兩個數(shù)字之間的所有質(zhì)數(shù)(由用戶輸入)。
要理解此示例,您應該了解以下C語言編程主題:
為了找到這兩個整數(shù)之間的所有質(zhì)數(shù),創(chuàng)建了checkPrimeNumber()。這個函數(shù)檢查數(shù)字是否為質(zhì)數(shù)。
#include <stdio.h>
int checkPrimeNumber(int n);
int main() {
int n1, n2, i, flag;
printf("輸入兩個正整數(shù): ");
scanf("%d %d", &n1, &n2);
printf("%d和%d之間的質(zhì)數(shù)為: ", n1, n2);
for (i = n1 + 1; i < n2; ++i) {
// 如果i是質(zhì)數(shù),flag就等于1
flag = checkPrimeNumber(i);
if (flag == 1)
printf("%d ", i);
}
return 0;
}
//用戶定義函數(shù)來檢查質(zhì)數(shù)
int checkPrimeNumber(int n) {
int j, flag = 1;
for (j = 2; j <= n / 2; ++j) {
if (n % j == 0) {
flag = 0;
break;
}
}
return flag;
}輸出結(jié)果
輸入兩個正整數(shù): 12 30 13和30之間的質(zhì)數(shù)為: 13 17 19 23 29
如果用戶首先輸入較大的數(shù)字,則該程序?qū)o法正常工作。 要解決此問題,您需要先交換數(shù)字。