c language and improved algorithms find primes

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;
}

 

Guess you like

Origin www.cnblogs.com/passedbylove/p/11332794.html