#include
#include
int
even (int n)
{
return (!(n%2));
}
int
prime2 (int n, int *divisor)
{
int i, is_prime;
/* looking for a divisor. if found, it
is not a prime number */
*divisor = 0;
/* eliminating even numbers except 2 */
if (even (n))
{
if (n==2)
*divisor=0;
else
*divisor=2;
}
else
{
if (n==1)
*divisor=0; /* 1 is a prime number */
else
/* trying to divide number by 3,5,7,... */
/* to find a divisor until sqrt(n) */
for (i=3; i<=sqrt(n); i=i+2)
{
if (!(n%i))
*divisor=i;
}
}
is_prime = *divisor;
/* if there is a divisor then NOT prime */
return (!is_prime);
}
int
main (void)
{
int x, div;
printf ("Enter a positive integer number: ");
scanf ("%d", &x);
/* testing for prime and printing the report */
if (prime2 (x, &div))
printf ("%d is a prime number.\n", x);
else
printf ("%d not prime number. Divisible by %d.\n", x, div);
return (0);
}
Write a function that determines if a number is prime or not by using Reference
Write a function that determines if a number is prime or not by using Reference
No comments:
Post a Comment