AtCoder 2286 C
来源:互联网 发布:nginx rtmp hls 编辑:程序博客网 时间:2024/05/29 21:30
题目链接:http://arc067.contest.atcoder.jp/tasks/arc067_a?lang=en
C - Factors of Factorial
Time limit : 2sec / Memory limit : 256MB
Score : 300 points
Problem Statement
You are given an integer N. Find the number of the positive divisors of N!, modulo 109+7.
Constraints
- 1≤N≤103
Input
The input is given from Standard Input in the following format:
N
Output
Print the number of the positive divisors of N!, modulo 109+7.
Sample Input 1
Copy
3
Sample Output 1
Copy
4
There are four divisors of 3! =6: 1, 2, 3 and 6. Thus, the output should be 4.
Sample Input 2
Copy
6
Sample Output 2
Copy
30
Sample Input 3
Copy
1000
Sample Output 3
Copy
972926972
Submit
题意:求n!的因子数
解析:n = 2^x1 + 3^x2 + 5^x3 + 7^x4 + 11^x5............ 就是一个数素因子分解,n的因子就是 sum = (x1+1) * (x2+1) * (x3+1) * ...............
代码:
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<vector>#include<queue>#include<map>#include<cmath>#define N 1009using namespace std;const int INF = 0x3f3f3f3f;const long long mod = 1e9 + 7;int fun(int n){ int f[N]; memset(f, 0, sizeof(f)); long long ans = 1; for(int i = 2; i <= n; i++) { int k = i; for(int j = 2; j <= k; j++) { while(k % j == 0) { f[j]++; k /= j; } } if(k) f[k]++; } for(int i = 2; i <= n; i++) if(f[i]) ans = ans * (f[i] + 1) % mod; return ans % mod;}int main(){ int n; scanf("%d", &n); cout << fun(n) << endl; return 0;}
0 0
- AtCoder 2286 C
- atcoder 1th C
- AtCoder 2282 C
- Atcoder ARC 077 C
- Atcoder arc 084 C
- Atcoder Grand Contest 013C
- AtCoder Beginner Contest 059 C
- AtCoder Regular Contest 077-C
- AtCoder Grand Contest 017 C
- AtCoder Regular Contest 078-C
- AtCoder Beginner Contest 067 C
- AtCoder Beginner Contest 067 C
- 【AtCoder】 Grand Contest 018 C
- AtCoder Regular Contest 079-C
- AtCoder Beginner Contest 069 C
- AtCoder Regular Contest 080-C
- AtCoder Grand Contest 019 C
- (AtCoder Grand Contest 019) C
- Algorithm Gossip (15) 筛选求质数(Eratosthenes )
- java 线程池的个人记录
- 飞机大战
- Javaの值传递和引用传递
- linux之守护进程与操作编程
- AtCoder 2286 C
- 20174-13练习
- 如何判断微信内置浏览器(JS & .Net)
- 【线段树】 求区间最小值以及区间最小值
- 出现 java.net.MalformedURLException: no protocol 异常的原因及解决方法
- MD5 校验两个文件是否一样
- C++中for循环的5种语法,值得学习!!!
- App开发概述
- linux 常见命令