java 打印100以内的质数
生活随笔
收集整理的這篇文章主要介紹了
java 打印100以内的质数
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目
質(zhì)數(shù):只能被1和它本身所整除的數(shù)。即:從2開(kāi)始一直到這個(gè)數(shù)-1,都不能被這個(gè)數(shù)整除;最小的質(zhì)數(shù)是2
知識(shí)點(diǎn)
1.System.currentTimeMillis():計(jì)算當(dāng)前時(shí)間距離1970-1-1的毫秒數(shù),返回long
2.Math.sqrt:開(kāi)方,返回double
代碼1
package lesson.l5_loop;//打印100以內(nèi)所有質(zhì)數(shù) //質(zhì)數(shù):只能被1和它本身所整除的數(shù)。即:從2開(kāi)始一直到這個(gè)數(shù)-1,都不能被這個(gè)數(shù)整除 //最小的質(zhì)數(shù)是2 public class PrimeNumber1 {public static void main(String[] args) {for (int i = 2; i <= 100; i++) {boolean isPrime = true;for (int j = 2; j <= i - 1; j++) {if (i % j == 0 ) {isPrime = false;}}if (isPrime) {System.out.print(i + "\t");}}} }代碼2
減少內(nèi)層循環(huán)次數(shù):i/2+1
package lesson.l5_loop;public class PrimeNumber2 {public static void main(String[] args) {for (int i = 2; i <=100 ; i++) {boolean isPrime=true;for (int j=2;j<=i/2+1;j++){if (i%j==0){isPrime=false;}}if (isPrime){System.out.print(i+"\t");}}} }代碼3
使用break優(yōu)化:當(dāng)不是質(zhì)數(shù)時(shí),立即跳出當(dāng)前循環(huán)
package lesson.l5_loop;public class PrimeNumber3 {public static void main(String[] args) {long start=System.currentTimeMillis();for (int i =2 ; i <=100 ; i++) {boolean isPrime=true;for (int j=2;j<=i/2+1;j++){if (i%j==0){isPrime=false;break;}}if (isPrime&&i!=1){System.out.print(i+"\t");}}long end=System.currentTimeMillis();System.out.println("\n"+(end-start));//52}}代碼4
使用開(kāi)方i
Math.sqrt:開(kāi)方
因?yàn)槌詀==b,所以沒(méi)必要去除以b
代碼5
使用帶標(biāo)簽的continue
package lesson.l5_loop;public class PrimeNumber4 {public static void main(String[] args) {long start = System.currentTimeMillis();label:for (int i = 2; i <= 100; i++) {for (int j = 2; j <= (int) Math.sqrt(i); j++) {if (i % j == 0) {continue label;}}System.out.print(i + "\t");}long end = System.currentTimeMillis();System.out.println("\n" + (end - start));} }總結(jié)
以上是生活随笔為你收集整理的java 打印100以内的质数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。