Example C programming    Prime number test

Function that we want to write:


  Write a C function isPrime(n) that:

    (1) returns true (= 1) if the input n is a prime number

    (2) returns false (= 0) otherwise
        









 

Example C programming    Prime number test

Start with a skeleton isPrime( ) function

int isPrime(int n)
{
    int nIsPrime;   // int used as a boolean

    nIsPrime = 1;   // 1 = True

    for ( int i = 2; i < x; i++ )
    {
        if ( n%i == 0 )
        {
            nIsPrime = 0;  // n is not prime
            break;
        }
    }

   return (nIsPrime ? 1 : 0);
} 

Example C programming    Prime number test

Initially, we assume that n is a prime number:

int isPrime(int n)
{
    int nIsPrime;   // int variable used as a boolean

    nIsPrime = 1;   // 1 = True

    for ( int i = 2; i < x; i++ )
    {
        if ( n%i == 0 )
        {
            nIsPrime = 0;  // n is not prime
            break;
        }
    }

   return (nIsPrime ? 1 : 0);
} 

Example C programming    Prime number test

Check every possible divisor between 2 and n:

int isPrime(int n)
{
    int nIsPrime;   // int variable used as a boolean

    nIsPrime = 1;   // 1 = True

    for ( int i = 2; i < n; i++ )
    {
        if ( n%i == 0 )
        {
            nIsPrime = 0;  // n is not prime
            break;
        }
    }

   return (nIsPrime ? 1 : 0);
} 

Example C programming    Prime number test

If some i is a dvisor of x, then it is not a prime number and we can exit the loop:

int isPrime(int n)
{
    int nIsPrime;   // int variable used as a boolean

    nIsPrime = 1;   // 1 = True

    for ( int i = 2; i < n; i++ )
    {
        if ( n%i == 0 )
        {
            nIsPrime = 0;  // n is not prime
            break;
        }
    }

   return (nIsPrime ? 1 : 0);
} 

Example C programming    Prime number test

Finally:   return the value of nIsPrime:

int isPrime(int n)
{
    int nIsPrime;   // int variable used as a boolean

    nIsPrime = 1;   // 1 = True

    for ( int i = 2; i < n; i++ )
    {
        if ( n%i == 0 )
        {
            nIsPrime = 0;  // n is not prime
            break;
        }
    }

   return nIsPrime;
} 

DEMO: demo/C/set1/prime-func.c