求1-N以內(nèi)的所有素?cái)?shù),實(shí)現(xiàn)思路如下:
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、建始網(wǎng)絡(luò)推廣、微信小程序、建始網(wǎng)絡(luò)營(yíng)銷、建始企業(yè)策劃、建始品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供建始建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
1、 得到1到n之間的素?cái)?shù),存到一個(gè)ArrayList集合。
2、判斷一個(gè)數(shù)是不是素?cái)?shù):只能被1和本身整除
說(shuō)明:從2開(kāi)始除,不需要到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ù),然后再?gòu)?fù)用到所有。不能把方法堆到一起,否則無(wú)法復(fù)用代碼。
2、注意注釋。
就算是自己的測(cè)試代碼,盡量寫清楚注釋,這樣即使過(guò)了三個(gè)月,再看代碼,也能清晰明了。不要覺(jué)得簡(jiǎn)單,就懶得注釋。
3、注意參數(shù)命名。
從類名到方法名,再到變量名,都不能隨意取名,關(guān)于這個(gè)命名,不要嫌棄長(zhǎng),重點(diǎn)是意思清楚明白。見(jiàn)名知意(語(yǔ)義化),是最好的。
參考代碼如下:
package test;
public class Test {
public static void main(String[] args) {
int j;
for (int i = 2; i = 100; i++) // 1不是素?cái)?shù),所以直接從2開(kāi)始循環(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(yǔ)言,不僅吸收了C++語(yǔ)言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語(yǔ)言具有功能強(qiáng)大和簡(jiǎn)單易用兩個(gè)特征。Java語(yǔ)言作為靜態(tài)面向?qū)ο缶幊陶Z(yǔ)言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。
最大質(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都找出來(lái)了:
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] );
/**
*?0-100:是:101個(gè)數(shù)字,不是100個(gè);
*?0與1,不是質(zhì)數(shù)也不是合數(shù):
*?以下代碼寫的有點(diǎn)冗余:只因?yàn)轭}目要求,布爾數(shù)組要參與運(yùn)算!
*?其實(shí)一個(gè)循環(huán)就可以解決的事!
*/
public?class?Prime?{
public?static?void?main(String[]?args)?{
int?arr[]=new?int[101],count=0;//元素?cái)?shù)組!
boolean[]?brr=new?boolean[101];//標(biāo)記數(shù)組!
for(int?i=0;iarr.length;i++)?//循環(huán)復(fù)制!
arr[i]=i;
f:for?(int?i?=?0;?iarr.length;?i++)?{//判斷!
if(i2)continue?f;//跳過(guò),0,1;
for(int?tem=i;tem--!=2;)?
if(i%tem==0)?
continue?f;
brr[i]=true;//標(biāo)記
}
for?(int?i?=?0;?i??brr.length;?i++)?{//查看!
if(brr[i]!=false)?{
count++;
System.out.print(arr[i]+"?");
}
}
System.out.println("\r\n0-100質(zhì)數(shù)共:"+count+"個(gè)!");
}
}