gpt4 book ai didi

java - java 小于给定数的最大素数

转载 作者:行者123 更新时间:2023-12-01 11:06:59 25 4
gpt4 key购买 nike

我的问题很简单,但我不知道如何解决我想要的问题。我必须找到小于给定数字的最大素数,如果不存在则打印消息。

import java.util.Scanner;

public class Ex8 {
public static void main(String[] args){
int n;
System.out.println("Give the number: ");
Scanner in = new Scanner(System.in);
n=in.nextInt();
while(prim(n) == false){
n--;
}
System.out.println(n);

}


public static boolean prim(int m){
int n=m;
for(int i=2;i<n;i++){
if(n%i == 0){
return false;
}

}
return true;
}
}

代码有效,如果数字是 10,它会打印 7,但我想进行 2 个新的修改,但我找不到解决方案。例如,如果给定数字是 1,应如何修改我的程序以打印消息?我尝试编写一个 if-else 但如果我用 if 修改 while ,这将没有帮助。第二件事,如何使得如果给定的数字是质数 nr ,代码仍然会找到比给定的数字少的数字。如果我给出数字 7,输出也是 7。谢谢。

最佳答案

  1. 您无需修改​​ while - 只需在其周围编写 if 即可。
  2. 在开始测试素数之前,只需递减 n 即可。

    if (n < 2) {
    System.out.println("Number must be greater than 1");
    } else {
    n--;
    while (!prim(n)) {
    n--;
    }
    System.out.println(n);
    }

或者:

if (n < 2) {
System.out.println("Number must be greater than 1");
} else {
while (!prim(--n));
System.out.println(n);
}

关于java - java 小于给定数的最大素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32846274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com