輸出前500個素數
10年積累的網站設計、做網站經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站制作后付款的網站建設流程,更有靖宇免費網站建設讓你可以放心的選擇與我們合作。
其中
for
(int
i
=
2;
i
=
math.sqrt(k);
i++)
從2開始,1不用比較,如果還有另外一個不是他本身的數可以整除他,那他就不是素數
math.sqrt(k)
是原先一個人提出的算法,加大效率的,你可以測試看看
已經按照你的要求用到了while和if
else
下面的朋友···別人說要用什么寫就用什么寫···有時候按要求去就好了
class
a
{
public
static
void
main(string
arg[])
{
int
num
=
0;
int
k=2;
while
(num
500)
{
if
(isprime(k))
{
system.out.print(k
+
"
");
num++;
}
k++;
}
}
public
static
boolean
isprime(int
k)
{
if
(k
==
2)
return
true;
else
if
(k
%
2
==
0)
return
false;
else
{
for
(int
i
=
2;
i
=
math.sqrt(k);
i++)
if
(k
%
i
==
0)
return
false;
return
true;
}
}
}
質數又稱素數。一個大于1的自然數,如果除了1和它自身外,不能被其他自然數整除的數;否則稱為合數。根據算術基本定理,每一個比1大的整數,要么本身是一個質數,要么可以寫成一系列質數的乘積;而且如果不考慮這些質數在乘積中的順序,那么寫出來的形式是唯一的。下面是一個java求100之內的素數簡單示例。
public class test {
public static void main(String[] args) {
int i,n,k=0;
for (n = 3; n=100; n++) {???? //3~100的所有數
i=2;
while (in) {
if (n%i==0)? break;? //若能整除說明n不是素數,跳出當前循環
i++;
}
if (i==n) {???? //如果i==n則說明n不能被2~n-1整除,是素數
k++;???????????? //統計輸出數的個數
System.out.print(i+ "\t ");
if (k %6==0)??? //每輸出5個則換行
System.out.println();
}
}
}
}
一般的求素數算法:
1234567891011121314151617181920212223242526
publicclassPrime
{
/*
*
* 一般求素數方法
*
* @param args
*/
publicstaticvoidmain(String[]args){for(inti=2; i100; i++)
{intj;for(j=2; j(int)(Math.sqrt(i)+1); j++)
{if(i%j==0){break;}} if(j(int)Math.sqrt(i)){System.out.print(i+" ");}} } }
篩法求素數:
12345678910111213141516171819202122232425262728293031
publicclassPrime2
{
/*
*
* 篩法求素數
*
* @param args
*/publicstaticvoidmain(String[]args)
{// TODO Auto-generated method stubintn=100;int[]array=newint[n];for(inti=2; i{if(array[i]!=0)
{intj, temp;}}}