// Purpose : To generate numbers of the form 2^i * 3^j * 5^k


#include

#define MAX 20000
#define MAX_ITER 1000

int A[MAX];

int main()
{
int i,j,n;
long long int global_min;

A[0]=1;

for(i=1 ; i {
global_min=100000000;
for(j=0 ; j {
if(A[j]*2 > A[i-1])
n=A[j]*2;
else if(A[j]*3 > A[i-1])
n=A[j]*3;
else if(A[j]*5 > A[i-1])
n=A[j]*5;

if(global_min>n)
global_min=n;
}
A[i]=global_min;
printf("%d : %lld\n",i,global_min);
}

return 0;
}

Read more: http://feeds.dzone.com/~r/dzone/snippets/~3/Qx8byM0T7OM/12833