java輸出1 100之間的全部素數的5種方法

2021-09-24 22:06:22 字數 2403 閱讀 8494

分析:

1.素數:

判斷條件1:只能被1和本身整除的稱為素數;

判斷條件2:在區間(1,x/

2)中找不到能整除素數x的整數;

判斷條件3:在區間(1,sqrt

(x))中找不到能整除素數x的整數;

2.方法:很多,但不外是迴圈巢狀外加條件語句;*/

class

printsushu

}//根據flag的值判斷是否輸出i

if(flag)

} system.out.

println

('\n'

+"---------------------------");

//方法二:根據判斷條件2進行遍歷檢查,減少遍歷次數

//外層迴圈遍歷被除數i(因為1既不是素數也不是和數,所以直接從2開始遍歷)

for(

int i =

2; i <=

100; i++)}

//根據flag的值判斷是否輸出i

if(flag)

} system.out.

println

('\n'

+"---------------------------");

//方法三:根據判斷條件3進行遍歷檢查,減少遍歷次數

//外層迴圈遍歷被除數i(因為1既不是素數也不是和數,所以直接從2開始遍歷)

for(

int i =

2; i <=

100; i++)}

//根據flag的值判斷是否輸出i

if(flag)

} system.out.

println

('\n'

+"---------------------------");

/*方法四:在方法三的前提上優化,優化基礎是除2外的所有偶數均不是素數,

*(i+=2)只遍歷奇數,減少外層遍歷次數;同理,由於奇數是不能被偶數整除的,

*(j+=2)只遍歷奇數,減少內層遍歷次數

*/ system.out.

print

("2 ");

//外層迴圈遍歷被除數i(因為1既不是素數也不是和數,所以直接從2開始遍歷)

for(

int i =

3; i <=

100; i +=2)

}//根據flag的值判斷是否輸出i

if(flag)

} system.out.

println

('\n'

+"---------------------------");

//聯想一下,能被2整除(偶數)的直接剔除,同樣的道理,能被3or5整除的剔除掉會不會讓外層迴圈的次數更少呢?

//此處才到100,若是1000呢?10000呢?

//定義乙個陣列,由於剔除了偶數,故陣列長度不會超過總個數的一半

int[

] arr =

newint

[500];

int count =0;

for(

int i =

6; i <=

1000

; i++)if

(flag)

} system.out.

println

("6~1000中剔除能被2or3or5整除的數後還剩"

+ count +

"個")

; system.out.

println

("1~1000中所有素數為:");

system.out.

print

("2"

+"\t");

system.out.

print

("3"

+"\t");

system.out.

print

("5"

+"\t");

count =0;

for(

int i =

0; i <

500; i++

)for

(int j =

7; j <= math.

sqrt

(arr[i]

); j +=2)

}if(flag)

} system.out.

println

("\n"

+"---------------------");

system.out.

println

("\n"

+"其中6~1000中剔除能被2or3or5整除的數中還是素數的有"

+ count +

"個");}

}

輸出1 100之間的素數

思路 取出1 100,寫乙個布林型別的的方法判斷是不是素數,是素數就輸出。判斷是不是素數的方法是 如果是 1直接返回 false,不是1 時,先得到該數的 2次方根,從 2開始遍歷直到該數的 2次根。如果取到的數能把 2到該數的 2次方根之間的數除盡,就不是素數,除不盡就是。能被2除盡的就不是質數。...

Python輸出1 100的數學資訊

今天我們來輸出1 100之間的一些數學資訊。本次我們不需要任何第三方庫。輸出1 100所有數字的和 sumnumber 0for i in range 1 101 sumnumber i print 1 100之間所有數字之和是 sumnumber 或者使用sum計算和方法 print 1 100之...

1 100之間 7 的倍數的個數,並列印

7的倍數 x 7 0 偶數的話 x 2 0 1 package com.ibeve.demo 23 4 2.1 100之間 7 的倍數的個數,並列印 5 思路 6 1.先對 1 100進行迴圈 遍歷 通過迴圈的形式 7 2.在遍歷的過程中,定義條件,只對7的倍數進行操作 8 3.因為 7 的倍數不確...