您的位置:

素数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("这是素数");

}