NC229747. Bash Plays with Functions
描述
输入描述
第一行包括一个正整数。
接下来行,每行包括两个整数。
输出描述
输出一个整数表示答案。
示例1
输入:
5 0 30 1 25 3 65 2 5 4 48
输出:
8 5 25 4 630
C++ 解法, 执行用时: 1543ms, 内存消耗: 88284K, 提交时间: 2022-03-10 17:44:47
#include<bits/stdc++.h> using namespace std; int q, n, k, ans, mo=1e9+7, f[1000005][20]; int main(){ f[0][0]=1; for(int i=1; i<20; i++) f[0][i]=2; for(int i=1; i<=1000000; i++){ f[i][0]=1; for(int j=1; j<20; j++){ f[i][j]=(f[i][j-1]+f[i-1][j])%mo; } } scanf("%d", &q); while(q--){ ans=1; scanf("%d%d", &k, &n); for(int i=2; i*i<=n; i++){ if(n%i) continue; int cnt=0; while(n%i==0) cnt++, n/=i; ans=1ll*ans*f[k][cnt]%mo; } if(n>1) ans=1ll*ans*f[k][1]%mo; printf("%d\n", ans); } return 0; }