uva 11728——Alternate Task
生活随笔
收集整理的這篇文章主要介紹了
uva 11728——Alternate Task
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:及其無聊的一道題目,以前做STl專題的時候,曾經做過一道求一個數的所有約數之和的題目,該題和那道題剛好相反,是給你一個數的約數之和,問這個數可能是多少!
題目:還能咋辦,直接打表篩一遍就ok了,先打一張所有數的因數之和的表,然后來一個,查一下表就行了,水題!
code:
題目:還能咋辦,直接打表篩一遍就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 11728——Alternate Task的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uva 11490 ——Just An
- 下一篇: 冰原守卫者冬季存生材料怎么制作