Java非素数

时间:2016-02-11 18:38:15

标签: java arrays loops primes

我想在一个区间内打印非素数并计算数量。例如,在3到10之间,非素数是这个区间的4,6,8,9。

我创建了一个数组并将非主数字放入数组中。我可以在屏幕上打印它们,但当我尝试覆盖数组nonPrime[0]上的每个元素时,nonPrime[1]似乎0。此外,我需要足够的维度数组,因为它无助于计算非素数的数量。

这就是我的尝试:

public static void main (String[] args)
{       
    int x=10;//end of the interval
    int y=2;//first of the interval
    int[]nonPrime=new int[10];
    for(int i=y+1;i<x;i++)
    {
        for(int j=2;j<x;j++)
        {  
            if(i!=j)
            {
                if((i%j==0))
                {
                   nonPrime[j]=i;
                   break;
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用ArrayList而不是像这样的int数组:

import java.util.ArrayList;
public static void main (String[] args)
{       
    int x=10;//end of the interval
    int y=2;//first of the interval
    ArrayList<Integer> nonPrime = new ArrayList<Integer>();
    for(int i=y+1;i<x;i++)
    {
        for(int j=2;j<i;j++)
        {  
            if((i%j==0))
            {
               nonPrime.add(i);
               break;
            }
        }
    }
}