求1-N以內(nèi)的所有素?cái)?shù),實(shí)現(xiàn)思路如下:
創(chuàng)新互聯(lián)專注于臺(tái)州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供臺(tái)州營銷型網(wǎng)站建設(shè),臺(tái)州網(wǎng)站制作、臺(tái)州網(wǎng)頁設(shè)計(jì)、臺(tái)州網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造臺(tái)州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供臺(tái)州網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
1、 得到1到n之間的素?cái)?shù),存到一個(gè)ArrayList集合。
2、判斷一個(gè)數(shù)是不是素?cái)?shù):只能被1和本身整除
說明:從2開始除,不需要到n,也就是循環(huán)條件是 n 就可以,這之間只要被整除了,那么他就不是素?cái)?shù)了。
3、設(shè)置主函數(shù),運(yùn)行?getPrimeNumberToN獲取限定范圍內(nèi)的素?cái)?shù)。?
執(zhí)行結(jié)果圖:
擴(kuò)展資料:
實(shí)現(xiàn)功能的編程事項(xiàng):
1、模塊化思想。
先拆分需求,先拆分先考慮怎么確定一個(gè)數(shù)是不是素?cái)?shù),然后再復(fù)用到所有。不能把方法堆到一起,否則無法復(fù)用代碼。
2、注意注釋。
就算是自己的測(cè)試代碼,盡量寫清楚注釋,這樣即使過了三個(gè)月,再看代碼,也能清晰明了。不要覺得簡單,就懶得注釋。
3、注意參數(shù)命名。
從類名到方法名,再到變量名,都不能隨意取名,關(guān)于這個(gè)命名,不要嫌棄長,重點(diǎn)是意思清楚明白。見名知意(語義化),是最好的。
最大質(zhì)因數(shù)
13195的所有質(zhì)因數(shù)為5、7、13和29。600851475143最大的質(zhì)因數(shù)是多少?
long i=2,n=600851475143L;
while (in){??? //避免n本身就是質(zhì)數(shù),否則循環(huán)到sqrt(n)就可以了
if(n % i==0){
n=n/i;
i--;
}
i++;
}
System.out.println( i );
第10001個(gè)素?cái)?shù)
列出前6個(gè)素?cái)?shù),它們分別是2、3、5、7、11和13。我們可以看出,第6個(gè)素?cái)?shù)是13。
第10,001個(gè)素?cái)?shù)是多少?
第1至10001都找出來了:
int a[]=new int[10001];
a[0]=2;
a[1]=3;
int n=5,k,i=2;
while (i10001){
for ( k=0;ki;k++)?? ?if(n % a[k] ==0 ) break;
if (k ==i ) a[i++]=n; ?
n+=2;
}
System.out.println(a[10000] );
一個(gè)好的算法,要經(jīng)的起推敲,不要只求結(jié)果
import?java.util.ArrayList;
import?java.util.List;
public?class?Primes?{
public?static?void?main(String[]?args)?{
//?求素?cái)?shù)
ListInteger?primes?=?getPrimes(200);
//?輸出結(jié)果
for?(int?i?=?0;?i??primes.size();?i++)?{
Integer?prime?=?primes.get(i);
System.out.printf("%8d",?prime);
if?(i?%?10?==?9)?{
System.out.println();
}
}
}
/**
*?求?n?以內(nèi)的所有素?cái)?shù)
*
*?@param?n
*????????????范圍
*
*?@return?n?以內(nèi)的所有素?cái)?shù)
*/
private?static?ListInteger?getPrimes(int?n)?{
ListInteger?result?=?new?ArrayListInteger();
result.add(2);
for?(int?i?=?3;?i?=?n;?i?+=?2)?{
if?(!divisible(i,?result))?{
result.add(i);
}
}
return?result;
}
/**
*?判斷?n?是否能被整除
*
*?@param?n
*????????????要判斷的數(shù)字
*?@param?primes
*????????????包含素?cái)?shù)的列表
*
*?@return?如果?n?能被?primes?中任何一個(gè)整除,則返回?true。
*/
private?static?boolean?divisible(int?n,?ListInteger?primes)?{
for?(Integer?prime?:?primes)?{
if?(n?%?prime?==?0)?{
return?true;
}
}
return?false;
}
}
首先介紹下:質(zhì)數(shù)是除了本身和1以外,沒有質(zhì)因數(shù),就是沒有數(shù)能夠整除之;合數(shù)是除了本身和1以外還有第三個(gè)數(shù)能整除之。
具體示例代碼如下:
public?class?Demo2?{
public?static?void?main(String[]?args)?{
Scanner?scan?=?new?Scanner(System.in);
System.out.print("請(qǐng)輸入一個(gè)數(shù):");
int?num?=?scan.nextInt();
int?index?=?0;//使用一個(gè)數(shù)來標(biāo)記是質(zhì)數(shù)還是合數(shù)
for?(int?i?=?2;?i??num;?i++)?{
if?(num?%?i?==?0)?{
index++;
}
}
if?(index?==?0)?{//index等于0表示質(zhì)數(shù)
System.out.println("這是個(gè)質(zhì)數(shù)");
}
else?{//index大于0表示合數(shù)
System.out.println("這是個(gè)合數(shù)");
}
}
}
需要注意的是:1不算質(zhì)數(shù)也不算合數(shù)。
int sum =0;int x=0;
for(int m =2,m=100,m++){//循環(huán)從2開始,2最小的質(zhì)數(shù),循環(huán)到100
for(int n = 2,nm,n++){//循環(huán)除以比自己小的數(shù)字
if(m%n==0){//若余數(shù)為0,則個(gè)數(shù)加一,即去的可被整除的數(shù)字的個(gè)數(shù)
x++;
}
}
if(x==0){//當(dāng)m不可以整除比自己小的整數(shù)后,加sum。
sum+=m;
}
}
如此循環(huán),到100結(jié)束,不能整除小于自身的數(shù)字的和就是sum了。
往樓主采納
參考代碼如下:
packagetest;
publicclassTest{
publicstaticvoidmain(String[]args){
intj;
for(inti=2;i=100;i++)//1不是素?cái)?shù),所以直接從2開始循環(huán)
{
j=2;
while(i%j!=0)
j++;//測(cè)試2至i的數(shù)字是否能被i整除,如不能就自加
if(j==i)//當(dāng)有被整除的數(shù)字時(shí),判斷它是不是自身
System.out.println(i);//如果是就打印出數(shù)字
}
}
}
擴(kuò)展資料:
質(zhì)數(shù)又稱素?cái)?shù)。一個(gè)大于1的自然數(shù),除了1和它自身外,不能整除其他自然數(shù)的數(shù)叫做質(zhì)數(shù);否則稱為合數(shù)。
Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡單易用兩個(gè)特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚摚试S程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。
網(wǎng)站欄目:Java質(zhì)素代碼 素?cái)?shù)代碼java
新聞來源:http://www.chinadenli.net/article22/hgoccc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、靜態(tài)網(wǎng)站、云服務(wù)器、企業(yè)網(wǎng)站制作、App開發(fā)、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)