java 打印100以内的质数
生活随笔
收集整理的這篇文章主要介紹了
java 打印100以内的质数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
質數:只能被1和它本身所整除的數。即:從2開始一直到這個數-1,都不能被這個數整除;最小的質數是2
知識點
1.System.currentTimeMillis():計算當前時間距離1970-1-1的毫秒數,返回long
2.Math.sqrt:開方,返回double
代碼1
package lesson.l5_loop;//打印100以內所有質數 //質數:只能被1和它本身所整除的數。即:從2開始一直到這個數-1,都不能被這個數整除 //最小的質數是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
減少內層循環次數: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優化:當不是質數時,立即跳出當前循環
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
使用開方i
Math.sqrt:開方
因為除以a==b,所以沒必要去除以b
代碼5
使用帶標簽的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));} }總結
以上是生活随笔為你收集整理的java 打印100以内的质数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 学生成绩
- 下一篇: 银行卡挂失了怎么恢复正常,有以下两种方法