Find all the prime numbers less than or equal to a given integer n
We can use Sieve of Eratosthenes method:
http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
Prime Number Generation upto a specific count:
#include<stdio.h>
main()
{
int n, i = 3, count, c;
printf("Enter the number of prime numbers required\n");
scanf("%d",&n);
if ( n >= 1 )
{
printf("First %d prime numbers are :\n",n);
printf("2\n");
}
for ( count = 2 ; count <= n ; )
{
for ( c = 2 ; c <= i - 1 ; c++ )
{
if ( i%c == 0 )
break;
}
if ( c == i )
{
printf("%d\n",i);
count++;
}
i++;
}
return 0;
}
There are many logic to check prime numbers, one given below is more
efficient then above method. for ( c = 2 ; c //only checking from 2 to square root of number is sufficient.
Program for Prime Number or not:
#include<stdio.h>
main()
{
int n, c = 2;
printf("Enter a number to check if it is prime\n");
scanf("%d",&n);
for ( c = 2 ; c <= n - 1 ; c++ )
{
if ( n%c == 0 )
{
printf("%d is not prime.\n", n);
break;
}
}
if ( c == n )
printf("%d is prime.\n", n);
return 0;
}
Prime Numbers Less than a number:
#include <stdio.h>
#include <iostream>
int main()
{
int n,i=1,j,c;
printf("Enter Number Of Terms");
printf("Prime Numbers Are Following\n");
scanf("%d",&n);
while(i<=n)
{
c=0;
for(j=1;j<=i;j++)
{
if(i%j==0)
c++;
}
if(c==2)
printf("%d\n",i);
i++;
}
system("pause");
return 0;
}
Efficient Method for Prime Numbers:
We can use Sieve of Eratosthenes method:
- Create a list of consecutive integers from two to n: (2, 3, 4, ..., n).
- Initially, let p equal 2, the first prime number.
- Strike from the list all multiples of p less than or equal to n. (2p, 3p, 4p, etc.)
- Find the first number remaining on the list after p (this number is the next prime); replace p with this number.
- Repeat steps 3 and 4 until p2 is greater than n.
-
All the remaining numbers in the list are prime.
void GeneratePrimes(int N)
{ bitset<1000> b;
for(int i = 2; i < N; i )
{ if(!b[i])
{ //Mark all multiples of i to 1 as there are not prime numbers int k = 2;
while((i * k) < N){ b[i * k] = 1; k ; }
}
for(int i = 2; i < N; i )
{ if(!b[i]) cout << i << " "; }
}
http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
No comments:
Post a Comment