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





#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);
}


No comments:

Post a Comment