題意:
給i,求由僅以2,3,5,7為因子的數中第i個是多少。
分析:
打表。
代碼:
//poj 3307 //sep9 #includeusing namespace std; typedef unsigned __int64 INT; const int maxL=66062; INT a[maxL+10]; INT min4(INT a,INT b,INT c,INT d) { return min(min(a,b),min(c,d)); } int main() { int p1,p2,p3,p4,i; a[1]=1; p1=p2=p3=p4=1; for(i=2;i<=maxL;++i){ INT t=min4(a[p1]*2,a[p2]*3,a[p3]*5,a[p4]*7); a[i]=t; if(t==a[p1]*2) ++p1; if(t==a[p2]*3) ++p2; if(t==a[p3]*5) ++p3; if(t==a[p4]*7) ++p4; } int cases; scanf(%d,&cases); while(cases--){ int i; scanf(%d,&i); printf(%I64u ,a[i]); } return 0; }