【发布时间】:2019-03-27 04:52:10
【问题描述】:
我有下面的java程序,它打印所有素数直到100,现在我想修改它,以便用户输入数字,它不会打印范围,但最后一个素数存在于该范围内,请告知如何修改下面的程序我还想将返回类型从字符串更改为 int 即
class PrimeNumbers
{
public static void main (String[] args)
{
int i =0;
int num =0;
//Empty String
String primeNumbers = "";
for (i = 1; i <= 100; i++)
{
int counter=0;
for(num =i; num>=1; num--)
{
if(i%num==0)
{
counter = counter + 1;
}
}
if (counter ==2)
{
//Appended the Prime number to the String
primeNumbers = primeNumbers + i + " ";
}
}
System.out.println("Prime numbers from 1 to 100 are :");
System.out.println(primeNumbers);
}
}
现在的输出是
Prime numbers from 1 to 100 are :
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
我只想打印最后一个素数
100
【问题讨论】:
-
只是颠倒你的循环顺序,即
for(i = 100; i>1;i--)。当你找到一个素数时,break;循环 -
返回类型是
void而不是String。很明显,你从别人那里复制/粘贴了这个作业:( -
@Jason 逻辑实际上看起来是正确的。建议
100是素数是不正确的或错字,但 OP 永远不应该生成它。
标签: java