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("不是素数");
}
}
for (x = 2; x <= j; x++) {
if (y % x == 0) {
Systemoutprintln("此数不为素数");
break;
}
}
经过这个循环可以判断这个数是不是素数,如果循环完成(x从2到j)这说明这个数是素数;所以下面只需要判断一下x是否是大于 j ,如果大于这说明循环完成,这个数就是素数,如果x<j 这说明循环没有完成是通过break语句跳出来的,则这个数肯定不是素数。
判断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("这是素数");
}
以上就是关于用java写程序判断是否为素数全部的内容,包括:用java写程序判断是否为素数、Java中用户输入一个数判断是否为素数d窗形式、java 判断是不是素数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)