當前位置:首頁 » 編程語言 » 素數判斷java

素數判斷java

發布時間: 2022-04-23 02:13:08

❶ 用java編寫一個判斷素數的程序

import java.util.*;

public class Test {

public static void main (String[] args) {

int n,i;
System.out.print("請隨便輸入一個數n");

Scanner sc =new Scanner(System.in);
int n=sc.nextInt();

for(i=n-1;i>1;i--)
if(n%i==0)
break;
if(n==i)
System.out.println(n+"是素數");

}
}

這個應該比較簡單吧!好理解吧!
樓主要到API文檔中好好查一下 Scanner 這個函數的使用方法\
不緊可以輸入一個整數...還可以輸入一個字元串..呵 呵 ..
很好用的噢!!

祝君早日成功!

❷ 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;j<number;j++){

if(number%j == 0) {

System.out.println("這不素數");
break;
}
}
if(j>=number)
System.out.println("這是素數");
}

❸ java中判斷素數

下邊是一個判斷num是否是素數的方法,若是素數,返回ture,否則返回false

publicbooleanisPrime(intnum)
{
for(inti=2;i<=Math.sqrt(num);i++)
{
if(num%i==0)returnfalse;
}
returntrue;
}

❹ java判斷素數

素數,只能被1和本身整除,只要用一個循環來判斷,如果該數能被除1或者本身之外的數整除就輸出0,否則輸出1

package zhongqing;
import java.util.Scanner;
public class sushu {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("\n輸入數字:"); /*輸入數值N,獲取N的值*/
int N = input.nextInt();
int i;
for(i=2;i<N;I++){ /*用一個for循環來判斷判斷是否為素數*/
if(N%i==0) /*如果能和i取余數為0表示不是素數*/
System.out.print("\n1"); /*輸出1*/
else
System.out.print("\n0");} /*否則輸出0*/
}}

❺ java 判斷素數

importjava.util.Scanner;

publicclassPrimeNumber{

publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
System.out.println("請輸入一個數:");

intnum=scanner.nextInt();//輸入的待判斷的數字

if(isPrime(num))
System.out.println("數字"+num+"是素數");
else
System.out.println("數字"+num+"不是素數");
}

/**
*判斷一個數是否是素數
*演算法核心:
* 定理:如果n不是素數,則n有一個因子d滿足1<d<=sqrt(n)
* 證明:如果n不是素數,則由定義:n有一個因子d滿足1<d<n。如果d大於sqrt(n),則n/d是滿足1<n/d<=sqrt(n)的一個因子
*
*由此可知:1.小於等於2的不是素數2.2的倍數的數也不是素數3.如果從小到大開始遍歷,一直到sqrt(n)還不能找到一個因子d,
* 則可以說明該數是素數
*
*@paramnum待判斷的數
*@return判斷結果
**/
privatestaticbooleanisPrime(intnum){
if(num<=2||num%2==0)
returnfalse;
for(inti=3;i*i<=num;i+=2){
if(num%i==0)
returnfalse;
}

returntrue;
}

}


詳細的解釋已經寫在上面的代碼的注釋中了,當然這種演算法不算最優,但是比較簡單易理解。當然更優的方案可以採用「篩選法」,具體的可以自行網路

❻ java素數的判斷

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class T2 {

public static void main(String[] args) {
new T2().judge1();
new T2().judge2();
}

public void judge1(){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("請輸入一個數字");
String str = br.readLine();
int a = Integer.parseInt(str);

if(isPrimes(a)){
System.out.println(a+" 是素數");
}else{
System.out.println(a+" 不是素數");
}

}catch(NumberFormatException e){
System.out.println("只能是數字");
judge1();
}catch (IOException e) {
System.out.println("讀取出錯了");
}
}

private void judge2() {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("請輸入兩個數用,號隔開(一個范圍)");
String str = br.readLine();
String [] s = str.split(",");

int a = Integer.parseInt(s[0]);
int b = Integer.parseInt(s[1]);

isPrimes2(a, b);

}catch(NumberFormatException e){
System.out.println("格式不正確");
judge2();
}catch (IOException e) {
System.out.println("讀取出錯了");
}
}

private void isPrimes2(int a, int b) {

System.out.println(a+"-"+b+"范圍的素數有:");
for(int i=a;i<=b;i++){
if(isPrimes(i)){
System.out.print(i+",");
}
}
}

public static boolean isPrimes(int n) {
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}

}

❼ 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;j<number;j++){

if(number%j == 0) {

System.out.println("這不素數");
break;
}
}
if(j>=number)
System.out.println("這是素數");
}
請採納答案,支持我一下。

❽ 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判斷素數

import java.util.Scanner;

public class Test40013 {
public static void main(String args[]) {
int ri, repeat;
int i, m, n;
boolean flag;
Scanner in = new Scanner(System.in);
repeat = in.nextInt();
for (ri = 1; ri <= repeat; ri++) {
m = in.nextInt();
/*--------------------*/
flag = true;
if(m == 1){//1不是素數,要排除
ri--;
continue;
}
for (i = 2; i <= Math.sqrt(m); i++) {
if (m % i == 0) {
flag = false;
break;
}
}
//add ends
if (flag)
System.out.println("YES");
else
System.out.println("NO");
}
}
}

❿ Java:判斷素數

//判斷一個數 是不是素數
public static void printSuShu(int s) {
for (int i = 2; i <= s / 2; i++) {
if (s % i == 0) {
return;
}
}
System.out.println(s);
}

熱點內容
百度雲下載文件夾 發布:2025-05-18 03:17:33 瀏覽:674
php雲開發 發布:2025-05-18 03:12:41 瀏覽:447
sql語句顯示表 發布:2025-05-18 03:12:30 瀏覽:690
資料庫系統的例子 發布:2025-05-18 03:02:42 瀏覽:191
數字化儲存與編譯是什麼 發布:2025-05-18 02:56:55 瀏覽:217
個人網站模板源碼 發布:2025-05-18 02:51:17 瀏覽:490
主伺服器ip地址 發布:2025-05-18 02:46:29 瀏覽:856
電腦配置太低玩不了絕地求生怎麼辦 發布:2025-05-18 02:38:39 瀏覽:797
存儲過程怎麼出錯了 發布:2025-05-18 02:37:16 瀏覽:368
32寸演算法 發布:2025-05-18 02:22:14 瀏覽:744