home *** CD-ROM | disk | FTP | other *** search
- /* Diana Sysinger
- C Programming
- Extra Credit */
-
- /* Division by subtraction with error checking */
-
- #include <stdio.h>
- #include "myname.c"
-
- int limit, num;
- static int count;
-
- void getlim(void); /* gets upper limit from user, must be greater than 2 */
- void prime(void); /* finds the prime numbers between 2 and the limit */
- /* calls prtit to do the output */
- void prtit(int); /* formats the output, 10 numbers per line */
- void main(void);
-
- void main(void)
- {
- myname;
- getlim();
- prime();
- fprintf(stdprn,"\n\nThere are %d primes from 2 to %d.\n\n", count, limit);
- }
-
- void getlim(void)
- { extern int limit;
- printf("\n\nPlease enter the upper Limit for the prime search.\n");
- printf("The Limit should be 2 or larger.\n");
- scanf("%d", &limit);
-
- if (limit < 2) {
- printf("\n\nOops! Limit must be 2 or larger!");
- printf("\nTry again.\n");
- getch();
- getlim();
- }
- else
- fprintf(stdprn,"\nHere come the primes!\n\n");
- }
-
-
- void prime(void)
- {
- int div = 2;
- extern int limit, num;
-
- for (num = 2; num <= limit; num++) { /* do until limit reached */
- for ( div = 2; num >= div * div ; div++) /* compare to square of divisor */
- if (num % div * div == 0) /* if num/square = 0 then num */
- break; /* not a prime number - do loop */
-
- for ( ; num % div != 0; div++) /* if num/div = zero then check */
- ; /* for prime condition */
- if (div == num) /* if div = num then num is a */
- prtit(num); /* prime so print it out */
- }
- }
-
-
- void prtit(int num)
- { extern int count;
-
- fprintf(stdprn,"%5d", num); /* print the numbers 10 to a */
- if ( ++count % 10 == 0 ) /* line. */
- fprintf(stdprn,"\n");
- }