uva 1521 一推数 分成若干组 每组的数相乘不能超过n 求最小分组

来源:互联网 发布:2017安全知识网络竞赛 编辑:程序博客网 时间:2024/06/05 07:12
#include<cstdio>#include<cstring>using namespace std;int vis[10020],prime[10020],cnt,n;void init(){for(int i=2;i<=10010;i++){if(!vis[i]){for(int j=i+i;j<=10010;j+=i)vis[j]=1;prime[cnt++]=i;}}}int main(){init();while(~scanf("%d",&n)){int l=0,r=cnt-1,res=0;while(prime[r]>n) r--;while(l<=r){int d=prime[r];while(d*prime[l]<=n) d*=prime[l++];res++;r--;}printf("%d\n",res);}}

阅读全文
0 0
原创粉丝点击