❶ java 判斷素數
public boolean isPrime(int n){
for(int i=2;i<=n/2;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程序中,如何設計程序,判斷輸入的數是否為素數
importjava.util.Scanner;
publicclasssushu{
publicstaticvoidmain(Stringargs[]){
Scannersc=newScanner(System.in);
System.out.print("請輸入:");
intnum=sc.nextInt();
if(check(num))
{
System.out.print(""+num+"是素數");
}
else
{
System.out.print(""+num+"不是素數");
}
}
staticbooleancheck(intnum)
{
for(inti=2;i<=num/2;i++){
if(num%i==0)
{
returnfalse;
}
}
returntrue;
}
}
❹ 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且只能被1和它本身整除的整數)
你說的素數就是質數吧?那你就直接判斷它是不是合數不就好了,判斷它是否有約數,如果沒有,那就是素數了~如有幫助,請採納,謝謝!
❻ 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 怎麼判斷一個數是否為質數
質數:
public static boolean isPrime(int N){if( N < 2 ) return false;
for( int i = 2 ; i*i <= N; i++){if( N % i == 0) return false;return true;}
❽ JAVA 輸入一個數判斷其是否是素數
public class panansushu {
public static void main(String args[]) {
int x, y, j;
Scanner i = new Scanner(System.in);
System.out.print("請輸入一個數:");
y = i.nextInt();
j = (int) y / 2;
for (x = 2; x <= j; x++) {
if (y % x == 0) {
System.out.println("此數不為素數");
break;
}
}
if (x > j) {
System.out.println("此數為素數");
}
}
}
❾ 在java中如何判斷一個數是不是素數
importjava.util.Scanner;
publicclassDemo{
publicstaticvoidmain(String[]args){
System.out.println("請輸入一個正整數:");
Scannerscanner=newScanner(System.in);
intnumber=scanner.nextInt();
System.out.println("是否是素數:"+isPrime(number));
scanner.close();
}
staticbooleanisPrime(intnumber){
if(number<=1){
returnfalse;
}
for(inti=2;i<=Math.sqrt(number);i++){
if(number%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;
}
}