Search code examples
javareverse

java code to print alternate prime numbers in reverse order


The following is my java code to print 'n' prime no.s but i want to modify it such that i can print alternate prime numbers in reverse order.

import java.util.Scanner;

class PrimeNumberDemo
{
   public static void main(String args[])
   {
      int n;
      int status = 1;
      int num = 3;
      //For capturing the value of n
      Scanner scanner = new Scanner(System.in);
      System.out.println("Enter the value of n:");
      //The entered value is stored in the var n
      n = scanner.nextInt();
      if (n >= 1)
      {
         System.out.println("First "+n+" prime numbers are:");
         //2 is a known prime number
         System.out.println(2);
      }

      for ( int i = 2 ; i <=n ;  )
      {
         for ( int j = 2 ; j <= Math.sqrt(num) ; j++ )
         {
            if ( num%j == 0 )
            {
               status = 0;
               break;
            }
         }
         if ( status != 0 )
         {
            System.out.println(num);
            i++;
         }
         status = 1;
         num++;
      }         
   }
}

Solution

  • As per your code I have made some modification and below is how I achieve Alternate Prime numbers in reverse order

    public static void main(String args[])
       {
          int n;
          int status = 1;
          int num = 3;
          List<Integer> primeNumberList=new ArrayList<Integer>();
          //For capturing the value of n
          Scanner scanner = new Scanner(System.in);
          System.out.println("Enter the value of n:");
          //The entered value is stored in the var n
          n = scanner.nextInt();
          if (n >= 1)
          {
             System.out.println("First "+n+" prime numbers are:");
             //2 is a known prime number
             System.out.println(2);
             primeNumberList.add(2);
          }
    
      for ( int i = 2 ; i <=n ;  )
      {
         for ( int j = 2 ; j <= Math.sqrt(num) ; j++ )
         {
            if ( num%j == 0 )
            {
               status = 0;
               break;
            }
         }
         if ( status != 0 )
         {
            System.out.println(num);
            primeNumberList.add(num);
            i++;
         }
         status = 1;
         num++;
      }
    
      //reversing collection 
      Collections.reverse(primeNumberList);
       System.out.println("\n");
      System.out.println("Alternate Prime numbers in reverse order \n");
      for(int k=0;k<primeNumberList.size();k++){
         if((k%2)==0)
              System.out.println(""+primeNumberList.get(k));
      }
    

    }

    Result Output

    Enter the value of n:
    10
    First 10 prime numbers are:
    2
    3
    5
    7
    11
    13
    17
    19
    23
    29
    
    
    Alternate Prime numbers in reverse order 
    
    29
    19
    13
    7
    3