/* cmsun1 39% v primes.cs */ /*"primes.cs" 43 lines, 1066 characters */ /************************************************/ /* C* Language */ /* Find out all prime numbers from 2 to N */ /* */ /* Editor : Xu Huihuang */ /* Sept. 14, 1991 */ /* CM-timer and UNIX wall timer gettimeofday() */ /* added, FBH/Fall95 */ /************************************************/ #include #include #include #define MAXIMUM_PRIME 16384 #define FALSE 0 #define TRUE 1 #define FIRST_PRIME 2 void find_primes(bool:current *is_prime_p) { bool:current is_candidate; int minimum_prime; *is_prime_p = FALSE; is_candidate = (pcoord(0) >= FIRST_PRIME) ? TRUE : FALSE; do where(is_candidate) { minimum_prime = 16000) printf("The next prime number is %d\n", i); CM_timer_stop(0); tcm = CM_timer_read_elapsed(0); gtod = gettimeofday(&tp,&tpz); ts[1] = tp.tv_sec; tms[1] = tp.tv_usec; /* Note take difference first, but keep integer to keep microsecond accuracy */ tgt = tms[1]-tms[0]+(ts[1]-ts[0])*1000000; printf("Comparison of CM Elapsed (Wall) and Unix Wall Timers:\n"); printf(" cm-wall-time for prime.cs code: %f secs \n",tcm); printf("unix-wall-time for prime.cs code: %d microsecs\n",tgt); }