IHYPRESS PROGRAMMING
Tutorials and C programs with code and output for beginners
c programming
HOME | ASP | C | CSS | GNUPLOT | HTML | JAVASCRIPT | PERL | PHP | PYTHON | RUBY | SVG
CAdvanced Functions : Prime Numbers & Divisors Calculator
<06.03>
/* Problem: Write a function that determines if a number is prime or not. The function must return 1 if prime, 0 if not. In addition, the function must "return" the value of one of the divisors. */ #include <stdio.h> #include <math.h> /* function returns true if n is even. */ /* it returns false if n is odd */ int even (int n) { return (!(n%2)); } /* function returns true if n is prime, the pointer variable references the divisor value */ 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); }
Hergestellt in Deutschland / Made in Germany
Enter a positive integer number: 77 77 not prime number. Divisible by 7.
COPYRIGHT © 2015-2024 IHY PRESS Frankfurt am Main 60329 Deutschland