Code needs to use c99 compiler
#include <stdio.h> #include <stdlib.h> #include <math.h> // is prime // from 2 to test whether x-1 is divisible // time complexity of O (n-2), n tends to positive infinity int the isPrime ( int X) { int RET = . 1 ; for ( int I = 2 ; I <X; I ++ ) { IF (X% I == 0 ) { RET = 0 ; BREAK ; } } return RET ; } //In addition to 2, not all even prime number, from 3 to x-1, increments by 2 // X is an even number of time complexity O ((n--3) / 2 +. 1) // X is large time complexity of close to (n-/ 2) int isPrime2 ( int X) { int RET = . 1 ; IF (X == . 1 || (X% 2 == 0 ! && X = 2 )) RET = 0 ; for ( int I = . 3 ; I <X; + I = 2 ) { IF (% I X == 0 ) { RET = 0 ; BREAK ; } } return RET; } // need to x-1, to sqrt (X) // time complexity of O (Log2n) i.e. sqrt (X) int isPrime3 ( int X) { int RET = . 1 ; IF (X == . 1 || X% 2 == 0 && X =! 2 ) RET = 0 ; for ( int I = . 3 ; I <sqrt (X); I + = 2 ) { IF (% I X == 0 ) { RET = 0 ; BREAK ; } } return RET; } // Analyzing prime and <x can be known whether or not divisible int isPrime4 ( int X, int knownPrimes [], int numberOfKnownPrimes) { int RET = . 1 ; int I; for (I = 0 ; I <numberOfKnownPrimes; I ++ ) { IF (X% knownPrimes [I] == 0 ) { RET = 0 ; break; } } return ret; } int main() { const int number = 100; int prime[number] = {2}; int count = 1; int i = 3; while( count < number ) { if(isPrime4(i ,prime, count)) { prime[count++] = i; } i++; } for( i = 0; i < number; i++) { printf("%d",prime[i]); if( (i + 1) % 5 ) printf("\t"); else printf("\n"); } return 0; }