What's wrong in this programm?

package ChallengePatterns;

import java.util.Scanner;

public class Prime {

public static void main(String[] args) {

	Scanner scan = new Scanner(System.in);
	int num = scan.nextInt();

	int count = 2;
	boolean flag = false;

	while (count < num) {
		if (num % count == 0) {
			flag = false;

		} else {
			flag = true;
		}

		count++;
	}

	if (flag == true) {
		System.out.print("Prime");
	} else if (flag == false) {
		System.out.print("Not Prime");
	}

}

}

Hey @Nitya_Somani
Remove else condition
correct code :
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
int count = 2;
boolean flag = true;
while (count < num) {
if (num % count == 0) {
flag = false;
}
count++;
}
if (flag == true) {
System.out.print(“Prime”);
} else if (flag == false) {
System.out.print(“Not Prime”);
}
}
}

1 Like

Why we have remove else and why we have taken boolean flag = true instead of false ?

let initially flag =true;

  • put a loop from 2 to that number.
  • If the number gets divided by any number in the loop, that means the number is not Prime.
    if my number is divide any number b/w 2 to n-1
    then flag is false , it means number is not prime
    initially flag is true and after while loop my flag is true
    mera N kabhi divide nhi hu.
    it means N is prime
1 Like