zoukankan      html  css  js  c++  java
  • Manthan, Codefest 16 -B. A Trivial Problem

    time limit per test 2 seconds
    memory limit per test 256 megabytes
    input standard input
    output standard output

    Mr. Santa asks all the great programmers of the world to solve a trivial problem. He gives them an integer m and asks for the number of positive integers n, such that the factorial of n ends with exactly m zeroes. Are you among those great programmers who can solve this problem?

    Input

    The only line of input contains an integer m (1 ≤ m ≤ 100 000) — the required number of trailing zeroes in factorial.

    Output

    First print k — the number of values of n such that the factorial of n ends with m zeroes. Then print these k integers in increasing order.

    Examples

    input
    1
    output
    5
    5 6 7 8 9
    input
    5
    output
    0

    Note

    The factorial of n is equal to the product of all integers from 1 to n inclusive, that is n! = 1·2·3·…·n.

    In the first sample, 5! = 120, 6! = 720, 7! = 5040, 8! = 40320 and 9! = 362880.

    判断阶乘的结果结尾零的个数为m的数
    打表即可

    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <cstdlib>
    #include <string>
    #include <stack>
    #include <queue>
    #include <vector>
    #include <set>
    #include <list>
    #include <map>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    typedef long long LL;
    
    const int INF = 0x3f3f3f3f;
    
    const double eps = 1e-6;
    
    const double PI = acos(-1.0);
    
    int num[500000];
    
    int a[11111];
    int ok(int n)
    {
        int ans = 0;
        while(n)
        {
            n/=5;
    
            ans+=n;
        }
        return ans;
    }
    
    int main()
    {
        for(int i = 0;i<500000;i++)
        {
            num[i] = ok(i);
    
        }
        int n,Num;
    
        cin>>n;
    
        Num = 0;
    
        for(int i=0;i<500000;i++)
        {
            if(num[i]==n)
            {
                a[Num++] = i;
            }
        }
        printf("%d
    ",Num);
    
        if(Num)
        {
            for(int i=0;i<Num;i++)
            {
                if(i) printf(" ");
                printf("%d",a[i]);
            }
            printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    [NoiPlus2016]换教室
    [HNOI2013]游走
    [Noi2002]Savage
    [SDOI2010]古代猪文
    [JSOI2008]最小生成树计数
    [SCOI2010] 连续攻击游戏
    文艺平衡树
    指针FHQTreap
    HAOI2007 上升序列
    HNOI2008 玩具装箱
  • 原文地址:https://www.cnblogs.com/juechen/p/5255857.html
Copyright © 2011-2022 走看看