如何在Java中检查素数

时间:2018-10-03 09:12:48

标签: java

我正在尝试使这些测试数字是否为质数,但这不起作用。我已经尝试了我所知道的所有东西,但是没有一个起作用。

代码如下:

 class Main {
   public static void main(String[] args) {

    int subject;
    subject = 17;

    int test;
    test = 2;

    boolean tf;
    tf = true;

    while(test < subject-1){

        if (subject % test == 0); {tf = false;}

        test = test + 1;
   }
   }

任何有关如何使其正常工作的提示都值得赞赏。

2 个答案:

答案 0 :(得分:1)

如果删除;,您的代码将起作用。在您的代码正常工作之后

if (subject % test == 0) {tf = false;}

最后添加:

System.out.println(tf);

如果打印true,则您的subject是质数;如果打印false,则不是质数。

(尽管您的代码有效,但这远不是检测质数的最有效方法。)

您可以运行以下代码来查看%运算符的工作方式。这可能有助于您的理解:

    System.out.println(17 % 15); // --> 2
    System.out.println(17 % 16); // --> 1
    System.out.println(17 % 17); // --> 0
    System.out.println(17 % 18); // --> 17

答案 1 :(得分:1)

您只是弄错了半冒号。

 if (test < subject - 1)--->;<--- {

这是正确的代码:

 class Main {
   public static void main(String[] args) {

    int subject;
    subject = 17;

    int test;
    test = 2;

    boolean tf;
    tf = true;

    while(test < subject-1){

        if (subject % test == 0){
             tf = false;
        }
        test = test + 1;
   }
   }