Search This Blog

Thursday 26 August 2021

1. Write a Java program to display only those multi-digit prime numbers between a given range whose digit sum is prime. Display the prime number and its digit sum side by side. Read the value for the range using readLine() method of BufferedReader class.

import java.io.*;
import java.util.*;
class  Program1
{
    public static void main(String[] args) throws IOException
    {
        System.out.println("Enter the range:");
        BufferedReader br=new BufferedReader(new     InputStreamReader(System.in));
        int m= Integer.parseInt(br.readLine());
        int n= Integer.parseInt(br.readLine());
        int rem,sum=0,temp;
        System.out.println("Prime Number \t Sum of Digits");
        for (int i = m; i <= n; i++)
        {
            
            if (i == 1 || i == 0)    //0 and 1 are not prime.
                continue;
    
        
            int pflag = 1, sflag = 1; // Set the flag values.
    
            for (int j = 2; j <= i / 2; ++j)
            {
                if (i % j == 0)
                {
                    pflag = 0;  // i is not prime.
                    break;
                }
            }
    
        
                temp = i;
                sum=0;
                while(temp>0)        // This loop is used to find the digit sum.
                {
                    rem=temp%10;
                    sum=sum+rem;
                    temp=temp/10;
                }

                for ( int k = 2; k <= sum / 2; ++k)
                {
        
                    if (sum % k == 0)
                    {
                    sflag = 0;  // Digit sum is not prime.
                    break;
                    }
                }
            
                if(pflag==1 && sflag==1)

                System.out.println(i+"\t\t\t"+sum);
            
        }
    }
}

No comments :

Post a Comment

FREE Hit Counters