#include #include #include long long int *decompose(long long int val, long long int *primes_array, long long int primes_number); long long int *primes_below(long long int MAX_VALUE,long long int *PRIMES_NUMBER); int main() { long long int *divisors_array,*primes_array,primes_number,solution_array[4],val=2; int index,counter=1; solution_array[0]=0; primes_array=primes_below(100000000,&primes_number); do { divisors_array=decompose(val,primes_array,primes_number); for(index=0;divisors_array[index]!=0;index++); if(index==4) { if(val-solution_array[counter-1]==1) counter++; else counter=1; solution_array[counter-1]=val; } free(divisors_array); }while(++val<100000000 && counter<4); if(counter==4) printf("\n\t%lli %lli %lli %lli\n\n",solution_array[0],solution_array[1],solution_array[2],solution_array[3]); system("PAUSE"); return 0; } long long int *decompose(long long int val, long long int *primes_array,long long int primes_number) { long long int *divisors_array,divisors_number=0,index=0; divisors_array=malloc(sizeof(long long int)); divisors_array[0]=1; while(index1) if(val%primes_array[index]==0) { divisors_array[divisors_number]*=primes_array[index]; val/=primes_array[index]; } else { if(divisors_array[divisors_number]!=1) { divisors_array=realloc(divisors_array,(++divisors_number+1)*sizeof(long long int)); divisors_array[divisors_number]=1; } index++; } divisors_array=realloc(divisors_array,(++divisors_number+1)*sizeof(long long int)); divisors_array[divisors_number]=0; return divisors_array; } long long int *primes_below(long long int MAX_VALUE,long long int *PRIMES_NUMBER) // MAX_VALUE is the number below we { // want to generate the primes. long long int *primes_array=NULL; if(MAX_VALUE>2) { long long int test=3; // To verify if it's prime primes_array=malloc(sizeof(long long int)); primes_array[0]=2; *PRIMES_NUMBER=1; for(;testsquare_root || index==*PRIMES_NUMBER) { primes_array=realloc(primes_array,sizeof(long long int)*(*PRIMES_NUMBER+1)); primes_array[*PRIMES_NUMBER]=test; ++*PRIMES_NUMBER; } } } return primes_array; }