【问题标题】:Print 1 or 0 if value is prime如果值为素数,则打印 1 或 0
【发布时间】:2022-08-09 19:21:39
【问题描述】:

使用面向对象的原理在java中编写一个程序来检查一个数字是否是素数。如果是素数,则打印 1,如果为假,则打印 0,如果给定值小于或等于 1,则打印 -1。从用户那里获取价值?

当我给出单个数字值时,它可以工作,但是当我给出 2 位数字值时,它不起作用

import java.util.Scanner;

class Prime1 {
int n;
Prime1 (int n)
{
    this.n=n;
}
boolean isPrime()
{
    if(n==2)
    {
        System.out.println(\"1\");
        return true;
       
    }
    else if (n%2==0)
    {
        System.out.println(\"0\");
        return false;
    }
    for (int i = 3;i<=Math.sqrt(n);i+=2)
    {
        if(n%i==0)
        System.out.println(\"0\");
        return false;
    }
    System.out.println(\"1\");
    return true;

}
}


class CheckPrime
{
public static void main(String[] args) 
{
    System.out.print(\"Enter a number you want to check :: \");
    Scanner scan = new Scanner(System.in);
    int num1 = scan.nextInt();
    scan.close();
    Prime1 obj = new Prime1(num1);
    if(num1<=1)
    {
        System.out.print(\"-1\");
    }        
    else
    {
        obj.isPrime();

    }
}
}
  • 似乎是stackoverflow.com/questions/15743192/… 的副本。请注意,c#java 共享大多数语法,因此您可以付出一些努力并调整现有答案以适应您的解决方案
  • 顺便说一下,您应该将打印语句移到您的主要方法中

标签: java


【解决方案1】:

将 for 循环更改为

  for (int i = 3;i<=Math.sqrt(n);i+=2)
{
    if(n%i==0)
    {
      System.out.println("0");
      return false;
     }
}

你忘了在 if 后面加上大括号,这会导致 for 循环只运行一次!

【讨论】:

  • 这是对的
【解决方案2】:
public class PrimeNumberCheck {

    public static void main(String[] args) {

        System.out.println(isPrime(19)); // true
        System.out.println(isPrime(49)); // false
    }

    public static boolean isPrime(int n) {
        if (n == 0 || n == 1) {
            return false;
        }
        if (n == 2) {
            return true;
        }
        for (int i = 2; i <= n / 2; i++) {
            if (n % i == 0) {
                return false;
            }
        }

        return true;
    }
}

【讨论】:

    猜你喜欢
    • 2020-12-04
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 2014-10-27
    • 2021-06-05
    • 2017-12-11
    相关资源
    最近更新 更多