poj 2545 Hamming Problem
#include <iostream>
using namespace std;
long long prime[100000000];
int start[3];
int main()
{
int factor[3],n,j;long long i,min;
cin>>factor[0]>>factor[1]>>factor[2]>>n;
prime[0]=1;
for(i=1;i<=n;i++)
{
min=1000000000000000000;
for(j=0;j<3;j++)
if(prime[start[j]]*factor[j]<min)
min=prime[start[j]]*factor[j];
prime[i]=min;
for(j=0;j<3;j++)
if(prime[start[j]]*factor[j]==min)
start[j]++;
}
cout<<prime[n]<<endl;
return 0;
}