質(zhì)數(shù)又稱素?cái)?shù)。一個(gè)大于1的自然數(shù),如果除了1和它自身外,不能被其他自然數(shù)整除的數(shù);否則稱為合數(shù)。根據(jù)算術(shù)基本定理,每一個(gè)比1大的整數(shù),要么本身是一個(gè)質(zhì)數(shù),要么可以寫成一系列質(zhì)數(shù)的乘積;而且如果不考慮這些質(zhì)數(shù)在乘積中的順序,那么寫出來的形式是唯一的。下面是一個(gè)java求100之內(nèi)的素?cái)?shù)簡(jiǎn)單示例。
為宣城等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及宣城網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站制作、宣城網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
public class test {
public static void main(String[] args) {
int i,n,k=0;
for (n = 3; n=100; n++) {???? //3~100的所有數(shù)
i=2;
while (in) {
if (n%i==0)? break;? //若能整除說明n不是素?cái)?shù),跳出當(dāng)前循環(huán)
i++;
}
if (i==n) {???? //如果i==n則說明n不能被2~n-1整除,是素?cái)?shù)
k++;???????????? //統(tǒng)計(jì)輸出數(shù)的個(gè)數(shù)
System.out.print(i+ "\t ");
if (k %6==0)??? //每輸出5個(gè)則換行
System.out.println();
}
}
}
}
我給你個(gè)算法,言簡(jiǎn)意賅
int?n?=?23;//所求素?cái)?shù)范圍(0-n以內(nèi))
int?j?=?1;
for?(int?i?=?2;?i??n;?i++)?{
for?(j?=?2;?j??i;?j++)?{
if?(i?%?j?==?0)
break;
}
if?(j?=?i)?{
System.out.println(i);
}
}
輸出前500個(gè)素?cái)?shù)
其中
for
(int
i
=
2;
i
=
math.sqrt(k);
i++)
從2開始,1不用比較,如果還有另外一個(gè)不是他本身的數(shù)可以整除他,那他就不是素?cái)?shù)
math.sqrt(k)
是原先一個(gè)人提出的算法,加大效率的,你可以測(cè)試看看
已經(jīng)按照你的要求用到了while和if
else
下面的朋友···別人說要用什么寫就用什么寫···有時(shí)候按要求去就好了
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;
}
}
}
判斷素?cái)?shù)方法,你供參考,代碼如下:
public?class?SuNum?{
public?static?void?main(String[]?args)?{
if(getResult(4)){
System.out.println("素?cái)?shù)");
}else{
System.out.println("非素?cái)?shù)");
}
}
public?static?boolean?getResult(int?num)?{
boolean?isPrime?=?true;?//?定義布爾變量判斷是否素?cái)?shù).是:true;否:false
int?k?=?(int)?Math.sqrt(num);
for?(int?j?=?2;?j?=?k;?j++)?{
if?(num?%?j?==?0)?{
isPrime?=?false;?//?如果能夠有數(shù)整除num,那么就不是素?cái)?shù).
}
}
if?(isPrime)?{
isPrime?=?true;
}
return?isPrime;
}
}
滿意請(qǐng)采納!