Qn: Write a C program to find whether a number is prime or not?
-By Admin, Last Update On 25th May,2019 08:04 pm

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

#include<stdio.h>
#include<conio.h>
int main(){
  int n,i;
  printf("\nEnter a number: ");
  scanf("%d",&n);
  for(i=2;i<n;i++){
    if(n%i==0){
      printf("\nGiven number is not a prime number.");
      break;
    }
  }

if(i==n){
	printf("\nGiven number is prime.");
}
return 0;

Output:

Enter a number: 13
Given number is prime.

Pgcomments

Comments