到目前为止,这是我的代码:
package PrimeNumberinRange;
import java.util.Scanner;
public class MainApp
{
public static void main(String[] args)
{
int lowerLimit, upperLimit, s3, flag = 0, i, j;
Scanner s = new Scanner(System.in);
System.out.println("Enter the lower limit :");
lowerLimit = s.nextInt();
System.out.println("Enter the upper limit :");
upperLimit = s.nextInt();
System.out.println("Prime numbers :");
for (i = lowerLimit; i <= upperLimit; i++)
{
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 0;
break;
} else
{
flag = 1;
}
}
if (flag == 1)
{
System.out.println(i);
}
}//for
}//main
}//MainApp
显然,我需要将2作为素数包含但不能在声明中找到适合的位置。而且我也希望将素数显示在这样的列表中:
输入下限:
1
输入上限:
10个
素数:
1. 2
2. 3
3. 5
4. 7
也非常欢迎任何其他建议或提示。
答案 0 :(得分:0)
只需在if语句中添加另一个条件:
for (i = lowerLimit; i <= upperLimit; i++)
{
for (j = 2; j < i; j++)
{
if (i % j == 0 && i!=2)
{
flag = 0;
break;
} else
{
flag = 1;
}
}
if (flag == 1)
{
System.out.println(i);
}
}
或者您可以创建一个方法来检查它是否是素数。
boolean isPrime(int n) {
for(int i=2;i<n;i++) {
if(n%i==0)
return false;
}
return true;
}
现在,还有其他更快的方法,但我希望你得到你想要的答案。
答案 1 :(得分:0)
如何打印它是前提条件好的
System.out.println("Prime numbers :");
if (upperLimit >= 2) {
// just print it
System.out.println("2");
}