在Java中,我們可以寫一個(gè)程序來輸出給定數(shù)字范圍內(nèi)的所有質(zhì)數(shù)和非質(zhì)數(shù)。下面是一個(gè)例子:
import java.util.Scanner; public class PrimeNumber { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("請輸入數(shù)字范圍的起始數(shù):"); int start = sc.nextInt(); System.out.print("請輸入數(shù)字范圍的結(jié)束數(shù):"); int end = sc.nextInt(); System.out.println("在" + start + "和" + end + "之間的質(zhì)數(shù)和非質(zhì)數(shù)是:"); for (int i = start; i<= end; i++) { boolean isPrime = true; // 標(biāo)記是否為質(zhì)數(shù) for (int j = 2; j<= i/2; j++) { if (i % j == 0) { isPrime = false; // 不是質(zhì)數(shù) break; } } if (isPrime) { System.out.println(i + "是質(zhì)數(shù)"); } else { System.out.println(i + "不是質(zhì)數(shù)"); } } sc.close(); } }
這里我們利用了兩個(gè)for循環(huán),第一個(gè)循環(huán)用來枚舉數(shù)字范圍內(nèi)的所有數(shù)字,第二個(gè)循環(huán)用來判斷當(dāng)前數(shù)字是否為質(zhì)數(shù)。
在第二個(gè)循環(huán)中,我們從2開始,一直循環(huán)到當(dāng)前數(shù)字的一半,如果發(fā)現(xiàn)當(dāng)前數(shù)字能夠被整除,那么就標(biāo)記不為質(zhì)數(shù),并且跳出循環(huán)。
最后我們根據(jù)標(biāo)記來輸出當(dāng)前數(shù)字是質(zhì)數(shù)還是非質(zhì)數(shù)。
使用上面的代碼,我們就可以很方便地輸出給定范圍內(nèi)的所有質(zhì)數(shù)和非質(zhì)數(shù)了。