zoukankan      html  css  js  c++  java
  • UVA 11728

    Little Hasan loves to play number games with his friends. One day they were playing a game where
    one of them will speak out a positive number and the others have to tell the sum of its factors. The
    first one to say it correctly wins. After a while they got bored and wanted to try out a different game.
    Hassan then suggested about trying the reverse. That is, given a positive number S, they have to find
    a number whose factors add up to S. Realizing that this task is tougher than the original task, Hasan
    came to you for help. Luckily Hasan owns a portable programmable device and you have decided to
    burn a program to this device. Given the value of S as input to the program, it will output a number
    whose sum of factors equal to S.
    Input
    Each case of input will consist of a positive integer S ≤ 1000. The last case is followed by a value of
    ‘0’.
    Output
    For each case of input, there will be one line of output. It will be a positive integer whose sum of
    factors is equal to S. If there is more than one such integer, output the largest. If no such number
    exists, output ‘-1’. Adhere to the format shown in sample output.
    Sample Input
    1
    102
    1000
    0
    Sample Output
    Case 1: 1
    Case 2: 101
    Case 3: -1

    题意: 给你一个S, 问你n的因子数的和 为S ,求n

    题解 : S很小,求出 n的因子和 S, 数组取反就好了

    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    using namespace std ;
    typedef long long ll;
    
    const int N=1000;
    
    int a[N + 5], b[N + 5];
    void init() {
        memset(a,-1,sizeof(a));
     for(int i = 1; i <= N; i++) {
        for(int j = i; j <= N; j += i) {
            b[j] += i;
        }
        if(b[i] < N) a[b[i]] = i;
     }
    }
    int main() {
        init();
        int  cas = 1, n;
        while(~scanf("%d",&n)) {
            if(n == 0) break;
            printf("Case %d: %d
    ", cas++, a[n]);
        }
        return 0;
    }
    代码
  • 相关阅读:
    入门菜鸟
    FZU 1202
    XMU 1246
    Codeforces 294E Shaass the Great 树形dp
    Codeforces 773D Perishable Roads 最短路 (看题解)
    Codeforces 814E An unavoidable detour for home dp
    Codeforces 567E President and Roads 最短路 + tarjan求桥
    Codeforces 567F Mausoleum dp
    Codeforces 908G New Year and Original Order 数位dp
    Codeforces 813D Two Melodies dp
  • 原文地址:https://www.cnblogs.com/zxhl/p/5107391.html
Copyright © 2011-2022 走看看