/* ECP: FILEname=fig4_8.c */ /* 1*/ #include "prime.h" /* 2*/ /* Return True Iff N Is Prime */ /* 3*/ int /* 4*/ IsPrime( unsigned long int N ) /* 5*/ { /* 6*/ unsigned long int Divisor; /* 7*/ if( N % 2 ) /* 8*/ for( Divisor = 3; N % Divisor; Divisor += 2 ) /* 9*/ if( Divisor * Divisor > N ) /*10*/ return 1; /*11*/ return N == 2 || N == 3; /*12*/ } /*13*/ /* Return Smallest Prime >= N */ /*14*/ unsigned long int /*15*/ FindPrime( unsigned long int N ) /*16*/ { /*17*/ unsigned long int TestPrime; /*18*/ TestPrime = N % 2 ? N : N + 1; /*19*/ for( ; ! IsPrime( TestPrime ); TestPrime += 2 ) /*20*/ ; /*21*/ return TestPrime; /*22*/ }