当前位置: 代码迷 >> 综合 >> 2022.1.30 训练日记 2 AcWing 1294. 樱花
  详细解决方案

2022.1.30 训练日记 2 AcWing 1294. 樱花

热度:24   发布时间:2023-11-26 19:57:33.0

题目链接:樱花


题目分析:
0.知识点:约数个数

在这里插入图片描述


code:
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 1000010;
const int mod = 1e9 + 7;int primes[N], cnt;
bool st[N];
//线性筛法
void init(int n)
{
    for(int i = 2; i <= n; i ++){
    if(!st[i]) primes[cnt ++] = i;for(int j = 0; primes[j] <= n / i; j ++){
    st[primes[j] * i] = true;if(i % primes[j] == 0) break;}}
}
int main()
{
    int n;cin >> n;init(n);int res = 1;//阶乘分解模板for(int i = 0; i < cnt; i ++){
    int p = primes[i];int s = 0;for(int j = n; j ; j /= p) s += j / p;res = (long long)res * (2 * s + 1) % mod;}cout << res << endl;return 0;
}

总结:
1.题目一旦有表达式,一定要化简。