在本文中,您將學(xué)習(xí)檢查數(shù)字是否為質(zhì)數(shù)。這是使用Java中的for循環(huán)和while循環(huán)完成的。
質(zhì)數(shù)是一個(gè)只能被兩個(gè)數(shù)字整除的數(shù)字:1和它本身。因此,如果數(shù)字可被除1和它本身的其他數(shù)字整除,則它不是質(zhì)數(shù)。
public class Prime { public static void main(String[] args) { int num = 29; boolean flag = false; for(int i = 2; i <= num/2; ++i) { //非質(zhì)數(shù)的條件 if(num % i == 0) { flag = true; break; } } if (!flag) System.out.println(num + " 是質(zhì)數(shù)"); else System.out.println(num + " 不是質(zhì)數(shù)"); } }
輸出結(jié)果
29 是質(zhì)數(shù)
在上面的程序中,for循環(huán)用于確定給定數(shù)字num是否為質(zhì)數(shù)。
在這里,請(qǐng)注意,我們從2循環(huán)到num / 2。這是因?yàn)橐粋€(gè)數(shù)字不能被其一半以上的整數(shù)整除。
在for循環(huán)內(nèi)部,我們檢查數(shù)字是否可被給定范圍內(nèi)的任何數(shù)字整除(2...num/2)。
如果num被整除,flag則設(shè)置為true,我們就跳出了循環(huán)。這確定num不質(zhì)素?cái)?shù)。
如果num不能被任何數(shù)字整除,flag則為false,并且num是質(zhì)數(shù)。
public class Prime { public static void main(String[] args) { int num = 33, i = 2; boolean flag = false; while(i <= num/2) { //非質(zhì)數(shù)的條件 if(num % i == 0) { flag = true; break; } ++i; } if (!flag) System.out.println(num + " 是質(zhì)數(shù)"); else System.out.println(num + " 不是質(zhì)數(shù)"); } }
輸出結(jié)果
33 不是質(zhì)數(shù)
在上面的程序中,使用while循環(huán)代替for循環(huán)。 循環(huán)運(yùn)行直到i <= num / 2。 在每次迭代中,檢查num是否可被i整除,并將i的值加1。
訪問(wèn)此頁(yè)面以了解如何顯示兩個(gè)時(shí)間間隔之間的所有質(zhì)數(shù)。