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;
}
原文地址:https://www.cnblogs.com/juechen/p/5255857.html