Problem
Example
For example, if n is 10, the output should be “2, 3, 5, 7″. If n is 20, the output should be “2, 3, 5, 7, 11, 13, 17, 19″.
Solution
Method 1 - Brute force
We just loop till number N, and check if individual iterator is prime or not.
Code :
We can simply write this as :
We know couple of primality tests discussed here. So, in nested loop, we can interate till i/2 or sqrt(i) or we can use any other method.
Method 2 - Sieve of Eratosthenes
We have discussed the method here.
Method 3 - Sieve of Atkins
We have discussed this method here.
Please share if you some other method.
Thanks.
Given a number n, print all primes smaller than or equal to n.
Example
For example, if n is 10, the output should be “2, 3, 5, 7″. If n is 20, the output should be “2, 3, 5, 7, 11, 13, 17, 19″.
Solution
Method 1 - Brute force
We just loop till number N, and check if individual iterator is prime or not.
Code :
void printPrimeTillN(int n)
{
for(i=2;i<=n;i++)
{
for(j=2;j<=i-1;j++)
if(i%j==0)
break;
if(i==j)
print (i);
}
}
We can simply write this as :
void printPrimeTillN(int n)
{
for(i=2;i<=n;i++)
{
if(checkIfPrime(i))
print(i);
}
}
We know couple of primality tests discussed here. So, in nested loop, we can interate till i/2 or sqrt(i) or we can use any other method.
Method 2 - Sieve of Eratosthenes
We have discussed the method here.
Method 3 - Sieve of Atkins
We have discussed this method here.
Please share if you some other method.
Thanks.







0 comments:
Post a Comment