接受第n个元素到数组中并将所有素数加到数组中?

时间:2014-10-20 19:05:10

标签: java arrays

在此代码中,用户输入第n个元素,其中所有素数或非素数的组合,但我想要添加或只有素数的总和...

public class prime {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        System.out.println("enter the size of an array");
        int abc = in.nextInt();
        int num[] = new int[abc];
        int a = 0, sum = 0;

        for (int k = 0; k < num.length; k++) {
            System.out.println("enter the value" + (k + 1));
            num[k] = in.nextInt();
        }

        for (int i = 0; i < num.length - 1; i++) {
            for (int j = 2; j < i; j++) {
                if (num[i] % i == 0) {
                    a = 1;
                    break;
                }
            }
            if (a == 0) {
                sum = sum + i;
            }
        }
        System.out.println("number is prime" + sum);
    }
}

1 个答案:

答案 0 :(得分:0)

您的计划中存在逻辑错误。 1):如果设置for,则在内部a循环中,它将始终包含值1。因此,你必须纠正它。 (即在语句0之后将值a重新分配给sum=sum+i 2)sum应该积累素数元素的值。因此sum=sum+i - &gt; sum=sum+num[i];

此外,在内部for循环中,您可以设置条件j<sqrt(i)以减少程序的运行时间。假设您可以执行所有必要的操作,以使代码可以运行。