Java语言程序,输入一个大于3的正整数,判断其是否为质数,若是输出“xx数为质数”否则输出“xx数不为质数

Java语言程序,输入一个大于3的正整数,判断其是否为质数,若是输出“xx数为质数”否则输出“xx数不为质数,第1张

import javautilScanner;

//质数又称素数,是指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数

public class PrimeNumber {

public static void main(String[] args) {

Scanner scan = new Scanner(Systemin);// 扫描器,接收控制台输入信息

Systemoutprint("请输入一个整数:");

try {

int num = scannextInt();// 取出控制台输入的信息

if (isPrime(num)) {// 调用isPrime()方法

Systemoutprintln(num + "为素数!");// 若isPrime()方法返回true,输出是素数

} else {

Systemoutprintln(num + "不为质数!");// 若isPrime()方法返回false,输出不是素数

}

} catch (Exception e) {

Systemoutprintln("请输入整数");// 捕捉异常,若输入的不是整数,输出异常

}

}

/

  用于判断一个数是否为素数,若为素数,返回true,否则返回false

  @param num 输入的值

  @return true、false

 /

public static boolean isPrime(int num) {

boolean flag = true;

if (num < 2) {// 素数不小于2

return false;

} else {

for (int i = 2; i <= Mathsqrt(num); i++) {

if (num % i == 0) {// 若能被整除,则说明不是素数,返回false

flag = false;

break;// 跳出循环

}

}

}

return flag;

}

}

抓住两个条件:

1质数,除了1和自己,没有别的约数。

2约数除了自己,一般都是不大于自己的一半的。

那么,你是否就该明白,整数n,在1~n/2之间做循环,如果在这个区间里一个数i,并且有n%i==0;则说明该整数不是质数。

(注意,1,既不是质数也不是合数。如果n=2,做特别处理)

代码吗,自己整,授之以渔。希望问题帮你解决了。

else

if(num1%2!=0&&(num1+1)%2==0){

Systemoutprintln(num1+"是质数");

}

else{

Systemoutprintln(num1+"不是质数");

15%2=1,

(15+1)%2=0

->

15是质数

修改:

//前面略

else

{

int

flag=1;

for(int

j=2;

jj<=num1;

j++)//这是质数的判断方法,只要除到这个数的开根号的数为止即可

if

(num1%j==0){Systemoutprintln(num1+"不是质数");

flag=0;

break;}

if(flag)

Systemoutprintln(num1+"是质数");

}

//后面略

应该是有函数吧

建议直接百度搜索

逻辑存在很大的问题,判断质素的守则是除了本身和1,其他数都不能将自己整除,所以楼主你应该做的事情是将你输入的数循环与2开始到你输入的数-1的数依次比较,有一次整除没有余数就说明不是素数。按照你的代码修改应该是:

bool flag=false;

for(int i=2;i<num;i++)

{

if(num%i==0)

{

flag=true;

break;

}

}

接下来判断flag的值,如果是 true代表不是质数,flase的话代表是质数

以上就是关于Java语言程序,输入一个大于3的正整数,判断其是否为质数,若是输出“xx数为质数”否则输出“xx数不为质数全部的内容,包括:Java语言程序,输入一个大于3的正整数,判断其是否为质数,若是输出“xx数为质数”否则输出“xx数不为质数、用JAVA编写程序:“判断n是不是质数”、JAVA 编程方法解决“ 输入一个数判断它是否是质数”等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9727902.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存