UVA 10791(p317)----Minimum Sum LCM
2016-02-27 13:21
351 查看
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; const int maxn=1000000; int n,num=0,cas=0; int prime[maxn+50]; int v[maxn+50]; int p[maxn+50]; void prepare() { memset(v,0,sizeof(v)); for(int i=2; i<=maxn; i++) { if(!v[i]) for(int j=2*i; j<=maxn; j+=i) v[j]=1; } for(int i=2; i<=maxn; i++) if(!v[i]) prime[num++]=i; } void solve(int n) { int check=0; for(int i=0; i<num; i++) { int flag=0; while(n%prime[i]==0) { flag=1; p[i]++; n/=prime[i]; //cout<<n<<endl; } if(flag) check++; if(n==1) break; } long long sum=0; //cout<<num<<endl; for(int i=0; i<num; i++) if(p[i]) { sum+=pow(prime[i],p[i]); // cout<<sum<<endl; } if(check<2) sum++; if(n>1) sum+=n; printf("Case %d: %lld\n",++cas,sum); } int main() { prepare(); while(scanf("%d",&n)==1&&n) { memset(p,0,sizeof(p)); if(n==1) printf("Case %d: %d\n",++cas,2); else solve(n); } return 0; }
相关文章推荐
- 安装andriod studio时出现Internal error. Please report to https://code.google.com/p/an
- 穷举法破解 zebrone1.1
- 用于PHP的Gearman Worker管理工具GearmanManager
- 抽象形式的观察者模式以及观察者模式的使用介绍
- IOS缓存机制详解
- TreeMap详细用法及案例分析
- android popwindow和dialog的取舍
- 数据的存储结构与逻辑结构
- 一种C#生成符合Java规则的二进制文件方法
- object对象、伴生类与伴生对象与类的继承实战
- TreeMap的最基本用法
- cordova技术集(一)Hello,cordova! 如何创建cordova项目。
- Scanner扫面器是否要关闭
- VAssistX使用技巧
- Hadoop的JobControl设计及用法
- 【sql入门】根据要求绘制E/R图,创建数据库(1)绘制E/R图
- 阿里云服务器Web项目配置发布全过程(四)
- Linux系统组成
- Leetcode ☞ 122. Best Time to Buy and Sell Stock II
- Python开发qq批量登陆