素數java,素數java判斷

本文目錄一覽:

java怎麼判斷素數

1、目前使用較有效的方法是試除法。用試除法判斷一個自然數a是不是素數時,用各個素數從小到大依次去除a,如果到某一個素數正好整除,這個a就可以斷定不是素數;如果不能整除,當不完全商又小於這個素數時,就不必再繼續試除,可以斷定a必然是素數。

2、素數又稱質數。一個大於1的自然數,除了1和它本身外,不能被其他自然數整除,換句話說就是該數除了1和它本身以外不再有其他的因數;否則稱為合數。

3、素數是與合數相對立的兩個概念,二者構成了數論當中最基礎的定義之一。基於質數定義的基礎之上而建立的問題有很多世界級的難題,如哥德巴赫猜想等。目前為止,人們未找到一個公式可求出所有素數,所以還沒有固定的判斷公式。

4、一般記住100以內的素數就可以了。有2、3、5、7、11、13、19、17、23、29、37、31、41、47、43、53、59、61、71、67、73、83、89、79、97,一共25個。

java求素數代碼

求1-N以內的所有素數,實現思路如下:

1、 得到1到n之間的素數,存到一個ArrayList集合。

2、判斷一個數是不是素數:只能被1和本身整除

說明:從2開始除,不需要到n,也就是循環條件是 n 就可以,這之間只要被整除了,那麼他就不是素數了。

3、設置主函數,運行 getPrimeNumberToN獲取限定範圍內的素數。 

執行結果圖:

擴展資料:

實現功能的編程事項:

1、模塊化思想。

先拆分需求,先拆分先考慮怎麼確定一個數是不是素數,然後再復用到所有。不能把方法堆到一起,否則無法復用代碼。

2、注意注釋。

就算是自己的測試代碼,盡量寫清楚注釋,這樣即使過了三個月,再看代碼,也能清晰明了。不要覺得簡單,就懶得注釋。

3、注意參數命名。

從類名到方法名,再到變量名,都不能隨意取名,關於這個命名,不要嫌棄長,重點是意思清楚明白。見名知意(語義化),是最好的。

Java中 什麼是素數?什麼條件?

素數是指不能被除了一和自身整除的數,所以判斷num是不是素數只有從二開始一直除到num/2,都不能整除就返回true,表示是素數,否則返回false,表示不是素數。

java里怎麼實現素數?

import java.util.Scanner;

//質數又稱素數,是指在一個大於1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數

public class PrimeNumber {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);// 掃描器,接收控制台輸入信息

System.out.print(“請輸入一個整數:”);

try {

int num = scan.nextInt();// 取出控制台輸入的信息

if (isPrime(num)) {// 調用isPrime()方法

System.out.println(num + “是素數!”);// 若isPrime()方法返回true,輸出是素數

} else {

System.out.println(num + “不是素數!”);// 若isPrime()方法返回false,輸出不是素數

}

} catch (Exception e) {

System.out.println(“請輸入整數”);// 捕捉異常,若輸入的不是整數,輸出異常

}

}

/**

 * pre

 * 用於判斷一個數是否為素數,若為素數,返回true,否則返回false

 * /pre

 * 

 * @param a

 *            輸入的值

 * @return true、false

 */

public static boolean isPrime(int a) {

boolean flag = true;

if (a  2) {// 素數不小於2

return false;

} else {

for (int i = 2; i = Math.sqrt(a); i++) {

if (a % i == 0) {// 若能被整除,則說明不是素數,返回false

flag = false;

break;// 跳出循環

}

}

}

return flag;

}

}

java判斷素數

樓主,首先你得知道,java是面向對象的語言。而c語言是面向過程的。

C語言你可以用scanf輸入n。但是java是面向對象的。你想從屏幕得到一個數。必須調用一個類的方法從而取得n。這些類就是輸入輸出流對象。如BufferedReader等。

建議你去看看java的輸入輸出流。

一下是代碼:

import java.io.*;

public class SystemInTest{

//判斷是否為質數,是的話返回true不是的話返回false

public static boolean isPrimeNumber(int n)

{

//2為質數

if(2==n)

{

return true;

}

for(int i=2;in;i++)

{

if(n%i==0)

return false;

}

return true;

}

public static void main(String [] args) throws NumberFormatException, IOException{

int n=0;

while(true){//為了方便測試,無限循環

System.out.println(“請輸入一個大於1的整數:”);

//以屏幕為輸入源 新建一個BufferedReader

BufferedReader bin=new BufferedReader(new InputStreamReader(System.in));

n=Integer.parseInt(bin.readLine()); //從屏幕得到的是字符串類型的,轉換為整數類型

if(isPrimeNumber(n))

{

System.out.println(n+”:是一個質數.”);

}else{

System.out.println(n+”不是一個質數.”);

}

}

}

}

java 判斷是不是素數

判斷number是否是素數有這麼幾種方法:

(1)用2至number-1之間的所有數去整除number,如果有一個能被整除,說明number是非素數;除非所有的數都不能被整除,才說明number是素數。

(2)用2至number/2之間的所有數去整除number,如果有一個能被整除,說明number是非素數;除非所有的數都不能被整除,才說明number是素數。

(3)用2至number的平方根之間的所有數去整除number,如果有一個能被整除,說明number是非素數;除非所有的數都不能被整除,才說明number是素數。

這3種的方法的效率是逐漸提高的。下面列出了第3種方法的實現:

import java.util.Scanner;

public class Test2 {

public static void main(String[] args) {

int number; // 輸入的數字

Scanner input = new Scanner(System.in);

System.out.println(“請輸入數字”);

number = input.nextInt(); // 輸入數字

if(isPrimeNumber(number)){

System.out.println(number + “是一個素數”);

}

else{

System.out.println(number + “是一個非素數”);

}

}

public static boolean isPrimeNumber(int num){

if(num 2){

System.out.println(“數據錯誤”);

return false;

}

int k = (int)Math.sqrt(num); //num的平方根

int i;

for(i=2; i=k; i++){ //依次用2..k之間的數去整除num,如果沒有一個數能被整除,說明num是素數

if(num % i == 0){

break;

}

}

if(i k){

return true;

}

return false;

}

}

如果對你的程序進行修改,也可這樣:

public static void main(String[] args) {

int number;// 輸入的數字

int j = 2;

Scanner input = new Scanner(System.in);

System.out.println(“請輸入數字”);

number = input.nextInt();// 輸入數字

for(j=2;jnumber;j++){

if(number%j == 0) {

System.out.println(“這不素數”);

break;

}

}

if(j=number)

System.out.println(“這是素數”);

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/159108.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-19 18:57
下一篇 2024-11-19 18:57

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有着廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論