Java: prime counting

So, I wrote this code, and I am proud of it, since I have not coded for a long time. What he does is he requests a number and then prints all the primary numbers from 1 to that number.

import java.util.Scanner; class PrimeNumberExample { public static void main(String args[]) { //get input till which prime number to be printed System.out.println("Enter the number till which prime number to be printed: "); int limit = new Scanner(System.in).nextInt(); //printing primer numbers till the limit ( 1 to 100) System.out.println("Printing prime number from 1 to " + limit); for(int number = 2; number<=limit; number++){ //print prime numbers only if(isPrime(number)){ System.out.println(number); } } } /* * Prime number is not divisible by any number other than 1 and itself * @return true if number is prime */ public static boolean isPrime(int number){ for(int i=2; i<number; i++){ if(number%i == 0){ return false; //number is divisible so its not prime } } return true; //number is prime now } } 

But what I would like to do is ask for a number, take 10, and then print the first 10 primes, I tried to find out if I can find a way, but I do not know how since I did not use Java. I hope you can and help me.

+8
java primes
source share
7 answers

Just count how many primes have been printed so far. If this number is greater than 10, stop. Your loop should be like this:

 for(int number = 2; number<=limit; number++){ //print prime numbers only if(isPrime(number)){ System.out.println(number); count++; } } 

All code:

 import java.util.Scanner; class PrimeNumberExample { public static void main(String args[]) { //get input till which prime number to be printed System.out.println("Enter the amount of prime numbers to be printed: "); int limit = new Scanner(System.in).nextInt(); int count=0; //printing primer numbers till the limit ( 1 to 100) System.out.println("Printing prime number from 1 to " + limit); for(int number = 2; number<=limit; number++){ //print prime numbers only if(isPrime(number)){ System.out.println(number); count++; } } } /* * Prime number is not divisible by any number other than 1 and itself * @return true if number is prime */ public static boolean isPrime(int number){ for(int i=2; i<number; i++){ if(number%i == 0){ return false; //number is divisible so its not prime } } return true; //number is prime now } } 
+6
source share

Try the following:

 public static void main(String[] args) throws Exception { // get input till which prime number to be printed System.out.println("Enter the number till which prime number to be printed: "); int limit = new Scanner(System.in).nextInt(); // printing primer numbers till the limit ( 1 to 100) System.out.printf("Printing first %d prime numbers\n", limit); for (int number = 2; limit > 0; number++) { if (isPrime(number)) { System.out.println(number); limit--; } } } /* * Prime number is not divisible by any number other than 1 and itself * * @return true if number is prime */ public static boolean isPrime(int number) { for (int i = 2; i < number; i++) { if (number % i == 0) { return false; // number is divisible so its not prime } } return true; // number is prime now } 
+2
source share

Can you try it like that?

 public static void main(String args[]) { //get input till which prime number to be printed System.out.println("Enter the number till which prime number to be printed: "); int limit = new Scanner(System.in).nextInt(); //printing primer numbers till the limit ( 1 to 100) System.out.println("Printing prime number from 1 to " + limit); int number = 2; for(int i = 0; i < limit;){ //print prime numbers only if(isPrime(number)){ System.out.println(number); i++; } number = number + 1; } } /* * Prime number is not divisible by any number other than 1 and itself * @return true if number is prime */ public static boolean isPrime(int number){ for(int i=2; i<number; i++){ if(number%i == 0){ return false; //number is divisible so its not prime } } return true; //number is prime now } 
+2
source share

Here is one way you might need ... I saved the restriction as a constant 10. You can also read it from the user.

 public class PrimeNumberExample { public static void main(String args[]) { //get input till which prime number to be printed System.out.println("Enter the number till which prime number to be printed: "); int limit = 10;//new Scanner(System.in).nextInt(); //printing primer numbers till the limit ( 1 to 100) System.out.println("Printing prime number from 1 to " + limit); int number = 0; while(true){ if(isPrime(++number)){ System.out.println(number); if(--limit <= 0) break; } } } /* * Prime number is not divisible by any number other than 1 and itself * @return true if number is prime */ public static boolean isPrime(int number){ for(int i=2; i<(number/2); i++){ if(number%i == 0){ return false; //number is divisible so its not prime } } return true; //number is prime now } } 
+2
source share

Try it, it is very simple to count the number of numbers that are pritning, which are the first that everything !!!

  public static void main(String args[]) { //get input till which prime number to be printed System.out.println("Enter the number till which prime number to be printed: "); int limit = new Scanner(System.in).nextInt(); //printing primer numbers till the limit ( 1 to 100) System.out.println("Printing prime number from 1 to " + limit); int count = 0; for(int number = 2; count<limit; number++){ //print prime numbers only if(isPrime(number)){ count++; System.out.println(number); } } } 
+1
source share
 public boolean isPrime(long pNo) { if(pNo > 9) { long unitDigit = pNo % 10; if(unitDigit == 0 || unitDigit%2 == 0 || unitDigit == 5) { return false; } else { for (long i=3; i < pNo/2; i=i+2) { if(pNo%i == 0) { return false; } } return true; } } else if(pNo < 0) { return false; } else { return pNo==2 || pNo==3|| pNo==5 || pNo==7; } } public int getPrimeNumberCount(long min, long max) { int count = 0; if(min == max) { System.out.println("Invalid range, min and max are equal"); } else if(max < min || min < 0 || max < 0) { System.out.println("Invalid range"); } else { for (long i = min; i <= max; i++) { if (isPrime(i) && i > 0) { // System.out.println(i); count++; } } } return count; } 
0
source share

Try this, it is very easy to count the number of numbers that are pritning, which are the first, that is all. Using java 8 !!!

 public static void main(String[] args) { Integer maxVal = 100; IntStream.iterate(2, i -> ++i) .parallel() .filter(i -> !IntStream.rangeClosed(2, i/2).anyMatch(j -> i%j == 0)) .limit(maxVal) .forEach(System.out::println); } 
0
source share

All Articles