在此示例中,您將學(xué)習(xí)檢查用戶輸入的整數(shù)是否是質(zhì)數(shù)。
要理解此示例,您應(yīng)該了解以下C語(yǔ)言編程主題:
質(zhì)數(shù)是一個(gè)正整數(shù),只能被1其自身整除。例如:2、3、5、7、11、13、17
#include <stdio.h> int main() { int n, i, flag = 0; printf("輸入一個(gè)正整數(shù): "); scanf("%d", &n); for (i = 2; i <= n / 2; ++i) { // 非質(zhì)數(shù)的條件 if (n % i == 0) { flag = 1; break; } } if (n == 1) { printf("1既不是質(zhì)數(shù)也不是合數(shù)。"); } else { if (flag == 0) printf("%d 是質(zhì)數(shù)。", n); else printf("%d 不是質(zhì)數(shù)。", n); } return 0; }
輸出結(jié)果
輸入一個(gè)正整數(shù): 29 29 是質(zhì)數(shù)。
在程序中,for循環(huán)從迭代i = 2到i < n/2。
在每次迭代中,檢驗(yàn)n是否能被i完全整除:
if (n % i == 0) { }
如果n能被i整除,n就不是質(zhì)數(shù)。在本示例中,將flag設(shè)置為1,并使用break語(yǔ)句終止循環(huán)。
循環(huán)之后,如果n是質(zhì)數(shù),flag仍然為0。但是,如果n是非質(zhì)數(shù),則flag為1。
訪問此頁(yè)面以了解如何打印兩個(gè)間隔之間的所有素?cái)?shù)。