判断number是否是素数有这么几种方法:
(1)用2至number-1之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。
(2)用2至number/2之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。
(3)用2至number的平方根之间的所有数去整除number,如果有一个能被整除,说明number是非素数;除非所有的数都不能被整除,才说明number是素数。
这3种的方法的效率是逐渐提高的。下面列出了第3种方法的实现:
import javautilScanner;
public class Test2 {
public static void main(String[] args) {
int number; // 输入的数字
Scanner input = new Scanner(Systemin);
Systemoutprintln("请输入数字");
number = inputnextInt(); // 输入数字
if(isPrimeNumber(number)){
Systemoutprintln(number + "是一个素数");
}
else{
Systemoutprintln(number + "是一个非素数");
}
}
public static boolean isPrimeNumber(int num){
if(num < 2){
Systemoutprintln("数据错误");
return false;
}
int k = (int)Mathsqrt(num); //num的平方根
int i;
for(i=2; i<=k; i++){ //依次用2k之间的数去整除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(Systemin);
Systemoutprintln("请输入数字");
number = inputnextInt();// 输入数字
for(j=2;j<number;j++){
if(number%j == 0) {
Systemoutprintln("这不素数");
break;
}
}
if(j>=number)
Systemoutprintln("这是素数");
}
因为for循环中i一直是增加的,如果在i=k之前找到一个能被k整除的,那么就(break)跳出循环,说明它有除了自己和1之外的约数,他就不是素数,当i==k成立,for循环的i++还执行了一次,也就是i会比k大一,一直在中途都没有找到他的约数,那么就是素数了
代码是没问题的
质数:
public static boolean isPrime(int N){if( N < 2 ) return false;
for( int i = 2 ; ii <= N; i++){if( N % i == 0) return false;return true;}
JAVA 编程方法:
public static void main(String[] args) {// TODO Auto-generated method stub
Scanner input = new Scanner(Systemin);for(int i=0;i<100;i++){
Systemoutprint("请输入数字:");int num1 = inputnextInt();if(num1==2||num1==3){
Systemoutprintln(num1+"是质数");}else if(num1%2!=0&&(num1+1)%2==0){
Systemoutprintln(num1+"是质数");}else{Systemoutprintln(num1+"不是质数");
public class test2 {
public static void main(String[] args) throws IOException {
int n=9;
int isPrime=1;
for(int i=2;i<n/2;i++)
{
if(n%i==0)
{
isPrime=0;
break;
}
}
if(isPrime==1)
Systemoutprintly("是素数");
else
Systemoutprintly("不是素数");
}
}
以上就是关于java 判断是不是素数全部的内容,包括:java 判断是不是素数、新手提问,java判断一个数是否素数、用 java 怎么判断一个数是否为质数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)