站外题求助
  • 板块学术版
  • 楼主Wildchesse
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/10/7 16:36
  • 上次更新2023/10/27 08:17:43
查看原帖
站外题求助
362022
Wildchesse楼主2022/10/7 16:36

就是求n的阶乘的约数的个数 n最大5005

#include<bits/stdc++.h>
using namespace std;
int cnt[5005],n;
int main() {
	cin>>n;
    for(int i = 1 ; i <= n ; i ++) {
        int x = i;
        for(int j = 2 ; j * j <= x ; j ++) {
            if(x % j == 0) {
                while(x % j == 0){
				 	x /= j;
					cnt[j] ++ ;
				}
            }
        }
        if(x > 1) cnt[x] ++ ;
    }
    long long ans = 1;
    for(int i = 1 ; i <= 100 ; i ++) {
        if(cnt[i] != 0) ans *= (cnt[i] + 1);
    }
    cout << ans;
    return 0;
}
2022/10/7 16:36
加载中...