我已经编写了用于检查素数的代码,但没有给出正确的输出
int flag;
Scanner s = new Scanner (System.in);
System.out.println("enter upper nd lower bound");
int lower = s.nextInt();
int upper = s.nextInt();
int i=0;
int j=0;
for ( i =lower ; i<=upper ;i++){
if(i==1){
continue;
}
}
flag =1;
for ( j = 2 ; j<=i/2 ; j++) {
if(i%j==0)
flag = 0;
break;
}
if(flag == 1){
System.out.println(i);
}
我的输入是1 10 它显示了我11
答案 0 :(得分:0)
您的代码的主要问题是,第二个for loop
应该嵌套在第一个for loop
内。因为第二个for loop
中的代码正在获取i=11
。当我们将第二个for loop
放入嵌套的for loop
时,根据条件将具有不同的i
值。
Boolean flag;
Scanner s = new Scanner (System.in);
System.out.println("enter upper nd lower bound");
int lower = s.nextInt();
int upper = s.nextInt();
int i=0;
int j=0;
for ( i =lower ; i<=upper ;i++){
if(i==1){
continue;
}
flag =true;
for ( j = 2 ; j<=i/2 ; j++) {
if(i%j==0)
flag =false;
break;
}
if(flag){
System.out.println(i);
}
}
答案 1 :(得分:-1)
/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
Boolean flag;
Scanner s = new Scanner(System.in);
System.out.println("Enter upper and lower bound");
int lower = s.nextInt();
int upper = s.nextInt();
for (int i = lower; i <= upper ;i++){
flag = true;
if(i <= 1){
continue;
}
flag = true;
for (int j = 2 ; j<=i/2 ; j++) {
if(i % j==0) {
flag = false;
break;
}
}
if(flag){
System.out.println(i);
}
}
}
}