I have written a program which tests for prime numbers. Please could someone review my code and tell me if there is any way to optimise it as once you start hitting large numbers it takes that much longer to break the loop and return a result.

Code:int prime( long unsigned int &number ) { int factor = 0; for( int i = 1; i <= number; i++ ) if( number % i == 0 )// if there is no remainder - i is a factor of number factor++; if( number == 1 ) return 1; else if( factor == 2 ) // number is prime if only 2 factors are found return 1; else // more than two factors found, number is not prime return 0; } // end function prime