gpt4 book ai didi

java - java中素数计数器从使用方法改为使用嵌套循环

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

我编写了一个代码,要求用户输入一个数字并打印出所有素数,例如,如果用户输入“5”,它将打印 2,3,5,7,11。我使用了一种方法,并且很好奇如何将代码更改为使用嵌套 for 循环。有什么想法吗?

   public static void main(String[] args) {

System.out.println("Enter the amount of prime numbers to be printed: ");
int limit = new Scanner(System.in).nextInt();
int count=1;
System.out.println("Printing prime number from 1 to " + limit);
for(int number = 2; count<=limit; number++){
//print prime numbers only
if(isPrime(number)){
System.out.println(number);
count++;
}
}

}

public static boolean isPrime(int number){
for(int i=2; i<number; i++){
if(number%i == 0){
return false; //number is divisible so its not prime
}
}
return true;
}
}

最佳答案

使用以下命令更改现有的 for 循环:

    for (int number = 2; count <= limit; number++) {
// print prime numbers only
boolean isPrime = true;
for (int i = 2; i < number; i++) {
if (number % i == 0) {
isPrime = false; // number is divisible so its not prime
break;
}
}
if (isPrime) {
System.out.println(number);
count++;
}
}

以下是需要分步完成的操作:

  • for 循环从 isPrime 方法移至 main 方法
  • 保留一个标志来指示该数字是否为素数
  • 如果发现该数字不是素数,则不要返回,而是将标志设置为 false 并从最内层循环中断。

关于java - java中素数计数器从使用方法改为使用嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35385427/

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