C programming language के इस हिंदी tutorial में हम अलग-अलग तरीकों से Prime Numbers print (find) करने के C Programs बनाएंगे.
जैसा की आप जानते हैं की Prime Numbers (अभाज्य संख्या) वो whole numbers होते हैं जो सिर्फ number 1 और अपने अलावा किसी और numbers से divisible नहीं होते हैं.
दूसरों शब्दों में कहूँ तो की prime numbers उन numbers को कहा जाता है जिनमें अगर आप number `1 और खुद उस number के अलावा किसी और numbers से division करते हैं तो remainder (शेषफल ) 0 नहीं आता है.
Prime Numbers Example:
2, 3, 5, 7, 11, 13, 17, 19
इसके अलावा वो numbers जो number 1 और अपने अलावा और भी numbers से divisable होते हैं उन्हें हम Composite Numbers कहते हैं लेकिन number 1 ना तो prime number है और ना ही composite number.
आप C programming में Prime Numbers find या print करने का program बहुत तरह से बना सकते हो और इसलिए हम भी नीचे दिए गये 4 तरीकों से user से number input लेकर prime numbers print करने के C programs बनाएंगे.
- Prime Number Program in C using for loop
- C Program to Print all Prime Numbers from 1 to N
- Prime Number Program in C using function
- Prime Number Program in C using recursion
इस tutorial में दिए गये सभी programs को समझने के लिए आपको पहले for loop, functions और recursion की जानकारी होनी चाहिए.
Prime Number Check का Logic क्या है?
Native Approach का मतलब होता है किसी काम को करने का simple और common तरीका. आइये अब हम समझते हैं की हम कैसे prime number find करेंगे.
जैसा की मैंने ऊपर बताया Prime Numbers वो whole numbers होते हैं जो सिर्फ number 1 और अपने अलावा किसी और numbers से divisible नहीं होते हैं.
इसलिए जिस number को आप check करना चाहते हो की वो prime number है या नहीं उसमें हम number 1 और खुद उस number को छोड़ कर number 2 से लेकर उस N number के half number (N/2) तक के सभी numbers से एक-एक करके divide करते हैं.
हम number N को सिर्फ उसके half number (n/2) तक ही इसलिए divide करते हैं क्योंकि किसी भी N number को जो सबसे बड़ा number divide कर सकता है वो होता है उस N number का half number.
अगर किसी भी number से number N पूरी तरह से divisible हो जाता है तो इसका ये मतलब है की number N prime number नहीं है. आइये इस logic को programs की form समझते हैं.
Prime Number Program in C using for loop
इस program में हम user से एक number input लेंगे और फिर check करके print करेंगे की वो number prime number है या नहीं.
#include<stdio.h>
int main()
{
int i,n,flag=0;
printf("Enter a number : ");
scanf("%d",&n);
for(i=2;i<=n/2;i++)
{
if(n%i==0)
{
flag=1;
break;
}
}
if(flag==0)
{
printf("%d is a prime number",n);
}
else
{
printf("%d is not a prime number",n);
}
return 0;
}
Output 1:
Enter a number : 12 12 is not a prime number
Output 2:
Enter a Number : 7 7 is a prime number
Explanation:
हमने ऊपर variable flag की value 0 initialize की है और अगर loop के अंदर variable i की कोई भी value variable n की value को divide कर देगी तो variable flag की value change हो जाएगी.
अगर variable flag की value change हो जाती है तो इसका मतलब है की variable n number 1 और खुद के अलावा किसी और number से भी divisible है.
Note: आप variable का name flag की जगह कुछ भी रख सकते हो.
C Program to Print all Prime Numbers from 2 to N
इस program में हम user से variable n में एक number input लेंगे और फिर number 2 से variable n तक सभी prime numbers को find करके print करेंगे.
#include<stdio.h>
int main()
{
int i,j,n,flag;
printf("Enter a number : ");
scanf("%d",&n);
printf("All prime numbers from 2 to %d : ",n);
for(i=2;i<=n;i++)
{
flag=0;
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{
flag=1;
break;
}
}
if(flag==0)
{
printf("%d ",i);
}
}
return 0;
}
Output:
Enter a number : 18 All prime numbers from 2 to 18 : 2 3 5 7 11 13 17
Prime Number Program in C using Function
#include<stdio.h>
int isPrime(int t);
int main()
{
int n,p;
printf("Enter a number : ");
scanf("%d",&n);
p=isPrime(n);
if(p==1)
{
printf("%d is a prime number",n);
}
else
{
printf("%d is not a prime number",n);
}
return 0;
}
int isPrime(int t)
{
int i;
for(i=2;i<=t/2;i++)
{
if(t%i==0)
{
return 0;
}
}
return 1;
}
Output 1:
Enter a number : 12 12 is not a prime number
Output 2:
Enter a Number : 7 7 is a prime number
Prime Number Program in C using Recursion
#include<stdio.h>
int isPrime(int t,int i);
int main()
{
int n,p;
printf("Enter a number : ");
scanf("%d",&n);
p=isPrime(n,n/2);
if(p==1)
{
printf("%d is a prime number",n);
}
else
{
printf("%d is not a prime number",n);
}
return 0;
}
int isPrime(int t,int i)
{
if(i==1)
{
return 1;
}
else if(t%i==0)
{
return 0;
}
else
{
return isPrime(t,i-1);
}
}
Output 1:
Enter a number : 12 12 is not a prime number
Output 2:
Enter a Number : 7 7 is a prime number