for prime numbers there are two general ways,
n is a prime number if it has just two factors.(1 and that number)
for example,
2 is a prime number because its factors are{1,2}
3 is a prime number because its factors are{1,3}
23 is a prime number because its factors are{1,23}
6 is not a prime number because its factors are{1,2,3,6}
1 is not a prime number because its factor is{1}
every even number except 2 is not a prime number because its factors are more than 2(for example for 2n we have at least 1,2,n,2n as its factors}
and its code is,
Code:
//Not tested
bool IsPrime(int n)
{
int counter=0;
for(int i=1; i<=n ; i++)
if (n%i==0) counter++;
if (counter==2) return true;
return fasle;
}
but another way is,
for every number like n,it is a prime number if there is no factor from 2 to its root(n^1/2) for example,
12 is not a prime because between ranges from 2 to 3(3<=12^1/2) 2 and 3 are the factors for 12,
and its code is,
Code:
//Not tested
bool IsPrime(int n)
{
//I'm not sure what is the right function for sqrt
int root=(int)sqrt(n);
for(int i=2; i<=root ; i++)
if (n%i==0) return fasle;
return true;
}
probably the second way is faster and better,
(if you just want to generate the prime numbers between two number there is a smart solution called
Eratostenes Sieve,check out its link).
_____________________________
Mehdi.
software engineering student.
Looking for a good job for summer 2005.