您的位置:

java质数,java质数判断代码

本文目录一览:

java判断质数

不知道你要的是不是这种效果,程序在你的基础上做了一些修改,在你的基础上增加了假如输入的不是一个数时做什么处理,输入“back”时返回,你可以拿去把程序修改的更完善。。你说的方法都可以调用,在 main方法里面需要new一个对象来调用,除非你把方法定义为静态方法(static)。。

import java.util.Scanner;

public class Prime_Decide {

public void isPrime(String st) { // 判断int整形a是否是素数

try {

if (st.equals("back")) {

Display();

} else {

int a, i;

a = Integer.parseInt(st);

for (i = 2; i = a / 2; i++) {

if (a % i == 0) {

break;

}

}

if (a == 0) {

System.out.println(a + " 你输入的数不是素数");

} else if (i a / 2) {

System.out.println(a + " 你输入的数是素数");

} else {

System.out.println(a + " 你输入的数不是素数");

}

Input1();

}

} catch (NumberFormatException e1) {

System.out.println("请你输入正确的数字!!!");

Input1();

}

}

public void isPrime_2(String s1, String s2) {

try {

if (s1.equals("back")) {

Display();

} else {

int a = Integer.parseInt(s1);

int b = Integer.parseInt(s2);

if (a 0 a == b a b) {

System.out.println("你的输入有误,重新输入:");

}

int j;

for (int i = a; i = b; i++) {

for (j = 2; j = i / 2; j++) {

if (i % j == 0) {

break;

}

}

if (j i / 2) {

System.out.println(" " + i + " 是素数");

}

}

Input2();

}

} catch (NumberFormatException e) {

System.out.println("请你输入正确的数字!!");

Input2();

}

}

public void Input1() {

System.out.println("请输入你要进行判断的数:");

Scanner sc = new Scanner(System.in);

String st = sc.nextLine();

isPrime(st);

}

public void Input2() {

// int a, b;

System.out.println("请输入上界 a= ");

Scanner sc = new Scanner(System.in);

// a = Integer.parseInt(sc.nextLine());

System.out.println("请输入下届 b=");

Scanner st = new Scanner(System.in);

// b = Integer.parseInt(st.nextLine());

isPrime_2(sc.nextLine(), st.nextLine());

}

public void Display() {

System.out.println("请输入你要进行的数的判断:\n1: 单个数的判断\n2: 一段整数范围的判断\n3: 退出");

try {

Scanner sc = new Scanner(System.in);

int c = Integer.parseInt(sc.nextLine());

if (c == 1) {

Input1();

} else if (c == 2) {

Input2();

} else if (c == 3) {

System.exit(1);

} else if (c != 1 c != 2 c != 3) {

System.out.println("你输入如的信息有误,请重新输入1、2、3!");

Display();

}

} catch (NumberFormatException e) {

System.out.println("你输入如的信息有误,请重新输入1、2、3!");

Display();

}

}

public static void main(String[] args) {

Prime_Decide pr = new Prime_Decide();

pr.Display();

}

}

希望对你有帮助!!

java怎样判断一个数是不是质数

由于大于2的质数一定是奇数(奇数又不一定都是质数),所以,在判断一个自然数是不是质数时,首先要看它是奇数还是偶数。如果是大于2的偶数,这个数肯定不是质数,而是合数;如果是奇数,那就有可能是质数。在这种情况下,一般使用以下两种方法:

(1)查表法:

主要是指查“质数表”。编制质数表的过程是:按照自然数列,第一个数1不是质数,因此要除外,然后按顺序写出2至500的所有自然数,这些数中2是质数,把它留下,把2后面所有2的倍数划去,2后面的3是质数,接着再把3后面所有3的倍数划去,如此继续下去,剩下的便是500以内的全部质数。

最早使用上述方法来寻求质数的人,是古代希腊数学家埃拉托斯特尼,由于他在开始时,先把自然数写在一块蜡板上,把不是质数的数(合数)分别刺上一个孔,这样,在蜡板上就被刺上了许多象筛子一样的孔,后来,大家就把这种寻求质数的方法叫做“筛法”。

这类的质数表还可以编制成数字范围更大一些的,如1000以内质数表等。判断一个自然数是不是质数,如在表所规定的数字范围内,即可用查表的方法进行判断。

(2)试除法:

在手头上没有质数表的情况下,可以用试除法来判断一个自然数是不是质数。例如判断143、179是不是质数,就可以按从小到大的顺序用2、3、5、7、11……等质数去试除。一般情况下用20以内的2、3、5、7、11、13、17、19这8个质数去除就可以了。如143,这个数的个位是3,排除了被2、5整除的可能性,它各位数字的和是1+4+3=8,也不可能被3整除,通过口算也证明不能被7整除,当试除到11时,商正好是13,到此就可以断定143不是质数。

对179试除过程如下:

179÷2=59……2

179÷3=66……1

179÷5=35……4

179÷7=25……4

179÷11=16……3

179÷13=13……10

179÷17=10……9

当179÷17所得到的不完全商10比除数17小时,就不需要继续再试除,而断定179是质数。这是因为2、3、5、7、11、13、17都不是179的质因数,因此,179不会再有比17大的质因数,或者说179不可能被小于10的数整除,所以,179必是质数无疑。

综上所述,用试除法判断一个自然数a是不是质数时,只要用各个质数从小到大依次去除a,如果到某一个质数正好整除,这个a就可以断定不是质数;如果不能整除,当不完全商又小于这个质数时,就不必再继续试除,可以断定a必然是质数。

java 1到100内的质数

int i,j;

for(i = 2; i = 100; i++){//从2数到100,判断之间的每一个数是否是质数

//下面的循环是质数判断过程

for(j = 2; j = i/2; j++){

if(i % j == 0)

break;//如果这个数能被一个数整除,那么这个数不是质数。break的作用是跳出此次循环,进入下一次循环。

}

if(j i/2){

System.out.println(i);//如果这个数不能被自身1/2的数整除,他就是质数,输出这个数.System.out.println()这个语句就是输出语句

}

}

System.out.println();//这句语句是多余的,什么也没打印。

完整代码及运行结果如图。

拓展资料

质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。

这道题只要理解质数的计算方法就容易解答。