求素数为什么到平方根就行了
生活随笔
收集整理的這篇文章主要介紹了
求素数为什么到平方根就行了
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
package com.wdl.day05;/*
100000以內(nèi)的所有質(zhì)數(shù)的輸出。實(shí)現(xiàn)方式一
質(zhì)數(shù):素?cái)?shù),只能被1和它本身整除的自然數(shù)。-->從2開始,到這個(gè)數(shù)-1結(jié)束為止,都不能被這個(gè)數(shù)本身整除。對(duì)PrimeNumberTest.java文件中質(zhì)數(shù)輸出問題的優(yōu)化
*/
public class PrimeNumberTest {public static void main(String[] args) {boolean isFlag = true;//標(biāo)識(shí)i是否被j除盡,一旦除盡,修改其值int count = 0;//記錄質(zhì)數(shù)的個(gè)數(shù)//獲取當(dāng)前時(shí)間距離1970-01-01 00:00:00 的毫秒數(shù)long start = System.currentTimeMillis();for(int i = 2;i <= 100000;i++){//遍歷100000以內(nèi)的自然數(shù)//優(yōu)化二:對(duì)本身是質(zhì)數(shù)的自然數(shù)是有效的。//for(int j = 2;j < i;j++){for(int j = 2;j <= Math.sqrt(i);j++){//j:被i去除if(i % j == 0){ //i被j除盡isFlag = false;break;//優(yōu)化一:只對(duì)本身非質(zhì)數(shù)的自然數(shù)是有效的。}}//if(isFlag == true){//System.out.println(i);count++;}//重置isFlagisFlag = true;}//獲取當(dāng)前時(shí)間距離1970-01-01 00:00:00 的毫秒數(shù)long end = System.currentTimeMillis();System.out.println("質(zhì)數(shù)的個(gè)數(shù)為:" + count);System.out.println("所花費(fèi)的時(shí)間為:" + (end - start));//17110 - 優(yōu)化一:break:1546 - 優(yōu)化二:13}
}
總結(jié)
以上是生活随笔為你收集整理的求素数为什么到平方根就行了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 给定年月日计算是一年的第几天
- 下一篇: 死亡细胞蜘蛛符文在哪里 死亡细胞蜘蛛符文