已經(jīng)發(fā)送

成都創(chuàng)新互聯(lián)專注于蘭西企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。蘭西網(wǎng)站建設(shè)公司,為蘭西等地區(qū)提供建站服務(wù)。全流程定制開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
import java.util.Scanner;
public class PrimeNumber {
public static void main(String[] args) {
System.out.println("input numbers:");
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
int flag = 1;
for (int i = 2; i (num / 2); i++) {
if (num % i != 0) {
flag = 1;
} else {
flag = 0;
}
}
if (flag == 1) {
System.out.println(num + "是質(zhì)素!!");
} else {
System.out.println(num + "不是質(zhì)素!!");
}
}
}
運(yùn)用java8新特性stream來解決
參考以下代碼
/**
*?IntStream.range(1,10001)?:獲取一個stream,是從1-10000的
*?filter:?取出stream每個數(shù)字進(jìn)行過濾,比如選取數(shù)字300,則再構(gòu)造一個stream,從2-299,依次用300取余2-299中的數(shù),若有一個是整除,余數(shù)為0的話,這個數(shù)字就不是我們要找的質(zhì)數(shù),跳過
*?forEach:打印經(jīng)過filter過濾后的stream中的每個數(shù)
*/
IntStream.range(1,10001).filter(outerInt-?!IntStream.range(2,outerInt).anyMatch(innerInt-outerInt%innerInt==0))
.forEach(System.out::println);
求1-N以內(nèi)的所有素?cái)?shù),實(shí)現(xiàn)思路如下:
1、 得到1到n之間的素?cái)?shù),存到一個ArrayList集合。
2、判斷一個數(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、模塊化思想。
先拆分需求,先拆分先考慮怎么確定一個數(shù)是不是素?cái)?shù),然后再復(fù)用到所有。不能把方法堆到一起,否則無法復(fù)用代碼。
2、注意注釋。
就算是自己的測試代碼,盡量寫清楚注釋,這樣即使過了三個月,再看代碼,也能清晰明了。不要覺得簡單,就懶得注釋。
3、注意參數(shù)命名。
從類名到方法名,再到變量名,都不能隨意取名,關(guān)于這個命名,不要嫌棄長,重點(diǎn)是意思清楚明白。見名知意(語義化),是最好的。
其實(shí)有兩處錯誤,樓上只看到一處
for(i=2;i=n;i++);
這里多了一個分號,使得循環(huán)變成空的了,應(yīng)該改為
for(i=2;i=n;i++)
而且,尋找質(zhì)數(shù)的時候不能除以自己求余數(shù),所以
for(n=201;n=300;n++)
應(yīng)該改為
for(n=201;n300;n++)
正確程序如下:
import java.io.*;
public class Mathss
{
public static void main(String args[])
{
System.out.println("輸出201到300之間的全部質(zhì)數(shù)");
int n,i;
for(n=201;n=300;n++)
{
for(i=2;in;i++)
{
if(n%i ==0)
break;
}
if (i ==n)
System.out.println (n);
}
}
}
參考代碼如下:
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開始循環(huán)
{
j = 2;
while (i % j != 0)
j++; // 測試2至i的數(shù)字是否能被i整除,如不能就自加
if (j == i) // 當(dāng)有被整除的數(shù)字時,判斷它是不是自身
System.out.println(i); // 如果是就打印出數(shù)字
}
}
}
擴(kuò)展資料:
質(zhì)數(shù)又稱素?cái)?shù)。一個大于1的自然數(shù),除了1和它自身外,不能整除其他自然數(shù)的數(shù)叫做質(zhì)數(shù);否則稱為合數(shù)。
Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡單易用兩個特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚摚试S程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。
網(wǎng)頁名稱:java代碼求質(zhì)數(shù),java怎么求質(zhì)數(shù)
文章轉(zhuǎn)載:http://chinadenli.net/article21/dseipjd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、靜態(tài)網(wǎng)站、云服務(wù)器、軟件開發(fā)、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)