如何使用scanner类显示数组中的素数

jmo0nnb3  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(362)

我最近开始学习java。我的学校教我们这种奇怪的方式,我在很多地方都没见过。我在这里找不到任何问题,但代码就是不起作用。请指出这里有什么问题。下面是我写的代码:

import java.util.*;
class Prime_array_attempt_infinity
{
    public static void main ()
    {
        Scanner sc= new Scanner (System.in);
        int i, j, counter=0, last;
        int arr[]= new int [10];
        System.out.println("Enter the values");
        for (i=0; i<10;i++)
        {
            arr[i]= sc.nextInt();
        }
        for (i=0; i<10; i++)
        {
            last = arr[i];
            for (j=2;j<last;j++)
            {
                if(arr[i]%j==0)
                counter++;

            }
        if (counter == 0)
        {
            System.out.println(arr[i]+" is a Prime Number");

        }
        }

    }

}
0wi1tuuw

0wi1tuuw1#

错过 args 为了 main 方法,您需要重置 counter 每次在内部for循环之前归零(也是 1 不是定义中的质数:):

import java.util.*;
class Prime_array_attempt_infinity
{
public static void main (String[] args)
{
    Scanner sc= new Scanner (System.in);
    int i, j, counter=0, last;
    int arr[]= new int [10];
    System.out.println("Enter the values");
    for (i=0; i<10;i++)
    {
        arr[i]= sc.nextInt();
    }
    for (i=0; i<10; i++)
    {

        last = arr[i];

        if(last <= 1)continue;

        counter = 0;
        for (j=2;j<last;j++)
        {
            if(arr[i]%j==0)
                counter++;

        }
        if (counter == 0)
        {
            System.out.println(arr[i]+" is a Prime Number");

        }
    }

}

}

输出:

Enter the values
1
2
3
4
5
6
7
8
9
10
2 is a Prime Number
3 is a Prime Number
5 is a Prime Number
7 is a Prime Number
m1m5dgzv

m1m5dgzv2#

我猜你的代码没有运行。
您需要将主方法替换为

public static void main(String[] args) {
}

把所有的代码都贴进去。这样地

public static void main(String[] args) {
    Scanner sc= new Scanner (System.in);
    int i, j, counter=0, last;
    int arr[]= new int [10];
    System.out.println("Enter the values");
    for (i=0; i<10;i++)
    {
        arr[i]= sc.nextInt();
    }
    for (i=0; i<10; i++)
    {
        last = arr[i];
        for (j=2;j<last;j++)
        {
            if(arr[i]%j==0)
                counter++;

        }
        if (counter == 0)
        {
            System.out.println(arr[i]+" is a Prime Number");

        }
    }
}

然后就可以运行代码段了。关于查找的算法,参见示例算法

相关问题