UVALive 5987

求第n个数,该数满足至少由3个不同的素数的乘机组成 #include #include #include #include #include using namespace std; int prim[5000]; int ans[5000]; int cnt1,cnt2; void getvis(){ cnt1=-1; for(int i=2;i<=5000;i++){ bool flag=false; for(int j=2;j<=sqrt(i);j++){ if(i%j==0){ flag=true; break; } } if(!flag) prim[++cnt1]=i; } } void getans(){ cnt2=-1; for(int i=30;i<=5000;i++){ int num=0; for(int j=0;j<=cnt1;j++){ if(i%prim[j]==0) num++; } if(num>=3){ ans[++cnt2]=i; } } } int main(){ int t; scanf("%d",&t); getvis(); getans(); while(t--){ int n; scanf("%d",&n); printf("%d\n",ans[n-1]); } return 0; }
posted @ 2015-08-24 18:25  柳下_MBX  阅读(240)  评论(3编辑  收藏  举报