您的位置:首页 > Web前端

Manthan, Codefest 16 -B. A Trivial Problem

2016-03-02 20:53 281 查看
time limit per test2 seconds
memory limit per test256 megabytes
input standardinput
output standardoutput
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\n",Num);

if(Num)
{
for(int i=0;i<Num;i++)
{
if(i) printf(" ");
printf("%d",a[i]);
}
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: