Java 中從 1 到 100 的素數:在 Java 中顯示 1 到 100

已發表: 2021-02-08

目錄

介紹

首先,讓我們從質數定義開始。 如果一個數只能被 1 和它自己整除,則稱它為素數。 如果我們被要求說出從 1 到 100 的素數,那麼在紙上檢查每個數字並說出它是否是素數將是一項乏味的任務。 沒關係,我們可以編寫代碼來做到這一點,而 java 讓事情變得簡單。

Java 是一種流行且使用最多的語言,它之所以成為陽光燦爛的日子,是因為它提供了面向對象編程、平台獨立性、預定義庫等特性。

讓我們構建一個打印從 1 到 100 的素數的代碼並逐步完成。 開始吧!

Java程序

在跳轉到代碼之前,我們將了解檢查數字是否為質數的算法。 首先,我們需要遍歷從 1 到 N 的所有數字,並維護一個正確除以給定數字的數字計數。 如果計數是 2,那麼我們可以得出結論,給定的數字是素數,否則它不是素數。 這是執行此操作的代碼。

詮釋n = 5 ;
詮釋c = 0 ;
for ( int i= 1 ;i<=n;i++)
如果(n%i== 0 )
C++;
如果(c== 2 )
System.out.println(n+ ” 是一個素數” );
別的
System.out.println(n+ ” 不是素數” );

在上面的代碼片段中,n 是要檢查的數字是否是素數,c 是存儲適當除數計數的變量。 如果我們找到合適的除數,我們將在 1 到 n 範圍內循環並增加計數。

退出循環後,我們正在檢查計數是否為 2 即; 只有兩個真除數(1 和它本身)。 如果是,則將其定為素數,否則為非素數。 談到上述代碼的時間複雜度,它是線性的,所以它是 O(n) 複雜度代碼。

現在我們被要求打印從 1 到 100 的素數,我們需要對 1 到 100 之間的每個數字運行相同的算法並存儲素數。 這是執行此操作的代碼。

ArrayList<Integer> a= new ArrayList<>();
for ( int n= 1 ; n<= 100 ; n++){
詮釋c = 0 ;
for ( int i = 1 ; i <= n; i++)
如果(n % i == 0 )
C++;
如果(c == 2 )
a.添加(n);
別的
繼續
}
System.out.println(a);

在上面的代碼中,我們聲明了一個 ArrayList,它存儲了 1 到 100 範圍內的所有素數。現在我們有兩個 for 循環,第一個 for 循環用於循環 1 到 100 之間的所有數字,第二個 for 循環是我們之前的素數算法。 在為每個數字運行質數算法後,如果它是質數,我們將其推入 ArrayList。

退房:印度的 Java 開發人員薪水

完成循環後,我們打印了 ArrayList,它顯示了 1 到 100 之間的所有質數。談到上面代碼的時間複雜度,我們可以看到有兩個 for 循環。 所以它是一個 O( n²) 複雜度代碼。

我們已經在上面的代碼中硬編碼了範圍,如果我們想在用戶輸入的範圍內打印素數怎麼辦?

給定輸入範圍內的素數

整個算法與上面的代碼幾乎相似,唯一的區別是用戶輸入範圍的下限和上限。

讓我們現在構建代碼!

掃描儀 sc=新的掃描儀(System.in);
int 低=sc.nextInt();
int 上=sc.nextInt();
ArrayList<Integer> a=new ArrayList<>();
for(int n=lower;n<=upper;n++){
詮釋 c = 0;
for (int i = 1; i <= n; i++)
如果 (n % i == 0)
C++;
如果 (c == 2)
a.添加(n);
別的
繼續;
}
System.out.println(a);

在上面的代碼中,我們正在初始化一個掃描器來讀取用戶輸入。 我們已經聲明了兩個變量 lower 和 upper 並用用戶輸入分配這些變量。 我們要做的是打印範圍 [lower, upper] 之間的所有素數。 我們之前的算法完成了這項任務,並將所有素數附加到 ArrayList 中。

另請閱讀: Java 項目理念和主題

從世界頂級大學在線學習軟件開發課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

我們已經了解了素數的定義,通過算法來判斷一個數是否為素數,擴展該算法以查找從 1 到 100 的素數。後來我們使用了 java 掃描器來讀取用戶輸入調整要檢查的數字範圍是否為素數,構建了一種算法,用於在用戶給定的範圍內打印素數。

既然您已經知道如何檢查一個數字是否為素數,那麼如何在給定範圍內打印素數。 嘗試實現一些挑戰,例如使用函數實現它,使用對象實現它,使用遞歸構建算法,嘗試在 java 中使用一些其他集合,如果可能的話嘗試優化代碼等等。因為實踐可以幫助你掌握編程語言, 幫助您克服語法和實現的歧義。

如果您想提高您的 Java 技能,您需要掌握這些 Java 項目。 如果您有興趣了解有關 Java、全棧開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發執行 PG 計劃,該計劃專為在職專業人士設計,提供 500 多個小時的嚴格培訓,9 個以上的項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。

什麼是質數?

什麼是埃拉托色尼篩?

埃拉托色尼篩法是一種古希臘用於尋找素數的算法。 該算法以其簡單和高效而聞名,因為它的時間相當快,但它產生的素數非常好。 該算法通過從合數中消除每個素數的所有倍數來工作,從 2 的倍數開始,以 N 的倍數結束(N 是您要為其找到素數的最後一個數字)。 埃拉托色尼是一位希臘數學家,被認為是埃及亞歷山大圖書館的創始人。 他以計算地球的周長和直徑而聞名。

什麼是數據結構和算法?

數據結構是一種存儲數據的方式,以便計算機程序可以檢索和修改它。 數據結構是一種編程語言抽象。 它本身可能是一個實體,也可能是另一個數據實體的一部分。 它可能是數據本身,也可能是訪問和操作其他數據的機制。 數據結構由數據定義、數據類型、內容和可應用於內容的操作組成。 算法是解決計算機問題的逐步過程。 每個算法都是一系列動作,將導致問題的解決方案。