I am a little bit confused. I want to print all the prime starting from 2 to the entered number in java using while loop and don't want to use n/2 logic. I don't know what is wrong with my code. Please help me.
HERE IS THE CODE :-
import java.util.Scanner;
public class print_primes {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scn = new Scanner(System.in);
int n = scn.nextInt();
int rem = 0;
int i = 2;
int flag = 0;
int start = 3;
System.out.println("2");
while (start <= n) {
i = 2;
while (i <= start - 1) {
rem = start % i;
if (rem == 0) {
flag = 1;
}
i = i + 1;
}
if (flag == 0) {
System.out.println(start);
}
start++;
}
}
}