uva 11728——Alternate Task
2015-10-26 17:08
246 查看
题意:及其无聊的一道题目,以前做STl专题的时候,曾经做过一道求一个数的所有约数之和的题目,该题和那道题刚好相反,是给你一个数的约数之和,问这个数可能是多少!
题目:还能咋办,直接打表筛一遍就ok了,先打一张所有数的因数之和的表,然后来一个,查一下表就行了,水题!
code:
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
const int N=1005;
vector<int>v(N,0);
void init() //自以为打的很好一张表,优于教材的算法
{
int n,m,i,j,sum;
for(i=1;i<N;i++)
for(j=1;i*j<N;j++)
v[i*j]+=i;
}
int cal (int n)
{
for (int i=n;i>=1;i--)
if (v[i]==n)
return i;
return -1;
}
int main()
{
init();
int n,ca=1;
while (~scanf("%d",&n)&&n)
printf("Case %d: %d\n",ca++,cal(n));
return 0;
}
题目:还能咋办,直接打表筛一遍就ok了,先打一张所有数的因数之和的表,然后来一个,查一下表就行了,水题!
code:
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
const int N=1005;
vector<int>v(N,0);
void init() //自以为打的很好一张表,优于教材的算法
{
int n,m,i,j,sum;
for(i=1;i<N;i++)
for(j=1;i*j<N;j++)
v[i*j]+=i;
}
int cal (int n)
{
for (int i=n;i>=1;i--)
if (v[i]==n)
return i;
return -1;
}
int main()
{
init();
int n,ca=1;
while (~scanf("%d",&n)&&n)
printf("Case %d: %d\n",ca++,cal(n));
return 0;
}
相关文章推荐
- uva 11490 ——Just Another Problem
- 中国剩余定理即孙子定理的五种解法
- uva 10710——Chinese Shuffle
- uva 10692——Huge Mods
- uva 10312——Expression Bracketing
- 卡特兰数的性质及其应用扩展
- uva 12034——Race
- UVA 10079 - Pizza Cutting
- uva 10883——Supermean
- 安装php的php-protobu扩展及使用
- UVA - 10497 Sweet Child Makes Trouble
- hdu 1659——Bus System(Floyd)
- UVA10843——Anne\'s game
- linux打包压缩命令汇总
- 一年后,我又回来啦
- RSA加密解密
- ssh-keygen的用法
- *第九周*数据结构实践项目一【猴子选大王(数组)】
- hdu 1317——XYZZY
- 学脚本的忠告——我觉得语言大多这样了