Qn: Write a java program to find whether a number is prime or not?
-By Admin, Last Update On 9th April,2019 06:55 am

Definition of prime number

ஒரு எண்(number) n. இது 2-லிருந்து அந்த எண்ணிற்கு முன்பு உள்ள எண்(n-1) அதாவது 2,3,4,5,....n-1 வரை உள்ள எந்த எண்ணாலும் வகுபடாமல்(divide-ஆகாமல்) இருந்தால் அந்த எண்(number) n ஒரு prime number ஆகும்.

logic to find the prime number

for loop 2-லிருந்து துவங்க வேண்டும். (n-1)-ல் முடியவேண்டும். இந்த loop-ன் உள்ளே if condition பயன்படுத்தி n என்ற number-ஐ, i-ல் வரக்கூடிய ஒவ்வொரு number-ம் divide செய்கின்றதா என்று பார்க்கவேண்டும்.

How to find a number is wether divede or not

ஒரு number மற்றொரு number-ஐ divide செய்கின்றதா என்பதை கண்டறிய %(modulo) பயன்படுத்த வேண்டும். அவ்வாறு பயன்படுத்தும்போது அதன் மதிப்பு 0-ஆக இருந்தால் அது divide-ஆகின்றது என்று பொருள். 0-ஐ தவிற வேறு ஏதேனும் number இருந்தால் அது divide ஆகாது என்று பொருள். அதாவது if(n%i==0){..it is divided..}else{..it is not divided..}

இவ்வாறு செயும்போது ஏதேனும் ஒரு number divide செய்துவிட்டாலே "இது prime number இல்லை என்று print செய்துவிட்டு" உடனே loop-ஐ விட்டு வெளியேறவேண்டும். ஏனெனில் 2,3,4,5,....n-1 இதில் ஏதேனும் ஒரு number divide செய்துவிட்டாலே அது prime number இல்லை என்பது உறுதியாகி விடுகின்றது அடுத்த number-ஐ சரிபார்க்க வேண்டிய அவசியம் இல்லை. ஆகையால் break கொடுத்து வெளியேறவேண்டும். இல்லையேல் இது prime number இல்லை என்று தெரிந்த பின்னும் loop சுற்றிகொண்டே இருக்கும். இது தேவை இல்லை.

2,3,4,5,....n-1 இதில் எந்த number-ம் divide செய்யாதபோது i-ஆனது n-1 வரை check செய்துவிட்டு, n என்று மாறிய உடன் loop நின்றுவிடும். இப்பொழுது i-ன் value-ம் n-ன் value-ம் சமமாக இருக்கும். ஆகையால் தான் if(i==n) என்று சரிபார்க்கப்பட்டுள்ளது,இப்போது இதை prime number என்று print செய்து கொள்ளவேண்டும்.

Program

import java.util.*;
public class FindPrimeNumber {
    public static void main(String[] args) {
        int i,n;
        System.err.println("Enter a number");
        Scanner sn = new Scanner(System.in);
         n=sn.nextInt();
        for(i=2;i<n;i++){
            if(n%i==0){
                System.out.println("Given number is not prime.");
                break;
            }
        }
        if(i==n){
           System.out.println("Given number is prime."); 
        }
    }

}

Output:

Enter a number: 18
Given number is not prime.

Pgcomments

Comments