【问题标题】:Following code for prime or not is not working for 2 and 3以下是否为素数的代码不适用于 2 和 3
【发布时间】:2022-11-10 05:03:52
【问题描述】:
  1. 是否素数的代码不适用于 2 和 3。如果在同一代码中而不是打印素数或不打印素数,我们分配一个布尔值,然后使用布尔值打印素数与否,它可以工作。我想知道为什么。
    package Loops;
    
    import java.util.*;
    
    public class PrimeOrNot
    {
        public static void main(String[] args) {
            Scanner sc  = new Scanner(System.in);
            System.out.print("Enter any number:");
            int n = sc.nextInt();
    
            for (int i = 2;i<=Math.sqrt(n);i++){
                if(n%i==0){
                    System.out.println(n+" is NOT prime");
                    break;
                }
                System.out.println(n+ " IS prime");
                break;
            }
        }
    }
    
    

【问题讨论】:

  • 2 和 3 的平方根小于 2。

标签: primes


【解决方案1】:

你需要做一些重新安排。将第二个打印语句移到循环之外,以便在确定素数之前检查所有值。

public class PrimeOrNot
{
    public static void main(String[] args) {
        Scanner sc  = new Scanner(System.in);
        System.out.print("Enter any number:");
        int n = sc.nextInt();

        for (int i = 2;i<=Math.sqrt(n);i++){
            if(n%i==0){
                System.out.println(n+" is NOT prime");
                break;
            }
        }
        System.out.println(n+ " IS prime");
    }
}

【讨论】:

    猜你喜欢
    • 2022-06-10
    • 2021-12-13
    • 2020-02-23
    • 1970-01-01
    • 2019-08-26
    • 2021-01-01
    • 2018-10-30
    • 2018-12-04
    相关资源
    最近更新 更多