在此示例中,您將學(xué)習(xí)如何打印兩個數(shù)字之間的所有質(zhì)數(shù)(由用戶輸入)。
要理解此示例,您應(yīng)該了解以下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ù)字。