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循环,方法等目前不在“词汇表”中。试着保持简单。我很感激帮助人员。
答案 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++)