【发布时间】: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