java求质数.......

来源:百度知道 编辑:UC知道 时间:2024/05/09 13:52:39
Scanner input = new Scanner(System.in);
int num = input.nextInt();
if (num % 2 == 0) {
System.out.println("该数不是质数");
} else {
if (num == 1) {
System.out.println("该数不是质数");
} else {
System.out.println("该数是质数");
}
}
这样写行吗?
如果错了,能给我说说为什么吗?

质数的求法有错,若用户输入9,你的程序会判断为质数,但是9并不是质数
一般质数的求法可以用循环,验证所求整数n从2开始直到n的开平方之间的整数是否能整除n

import java.util.Scanner;

public class IsPrimeNumber {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入一个整数");
Scanner s = new Scanner(System.in);
int number = s.nextInt();
int k=0;
int i=0;
k = (int)Math.sqrt((double)number);
for(i=2;i <=k;i++){
if(number%i == 0) break;
}
if(i>k){
System.out.println(number+" is a prime number!");
}else{
System.out.println(number + " isn't a prime number!");
}
}

}