对于循环帮助,检查素数

时间:2015-02-12 03:08:04

标签: java loops for-loop

        for (int i = lo; i <= hi; i++)  
    {
        boolean isPrime = true;  // each value of i starts out assuming it IS prime
        // Write a loop below that divides i by 2,3,4,5 etc upto i/2 
        // If at any time you find a divisor that evenly divides i
        // Then set isPrime to false    

        /* your prime checking loop HERE */
        for (int j = 2; j <= hi / 2; j++)
        {
            if (i % j == 0)
            {
                isPrime = false;
            }
        }   
        // DO NOT REMOVE OR MODIFY LINE BELOW
        if ( isPrime )
            System.out.print( i + " " );
    }

好的,这是我目前的代码,我假设问题在于。该程序采用文本输入文件并将第一个值设置为lo(在我的文本演示中,lo = 3和hi = 73.)无论出于何种原因,输出为'prime'的唯一数字从41开始,然后在那之后完全没问题。我不知道为什么前半部分的数字根本没有被输出。

请记住,我必须为此项目使用for循环,方法等目前不在“词汇表”中。试着保持简单。我很感激帮助人员。

2 个答案:

答案 0 :(得分:2)

再次阅读评论栏。它说要循环直到i / 2。你循环直到hi / 2。

问题是你继续使用数字模数。

3%3为零,但3为素数。

答案 1 :(得分:0)

素数检查循环,选择一个:

for (int j = 2; j < i / 2; j++)

for (int j = 2; j <= sqrt(i); j++)