結果
問題 | No.2326 Factorial to the Power of Factorial to the... |
ユーザー |
![]() |
提出日時 | 2023-05-28 14:38:14 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 1,321 bytes |
コンパイル時間 | 1,937 ms |
コンパイル使用メモリ | 192,504 KB |
最終ジャッジ日時 | 2025-02-13 11:50:03 |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 20 |
ソースコード
#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<ll,ll> PP;#define MOD 1000000007//#define MOD 998244353#define INF 2305843009213693951//#define INF 810114514#define PI 3.141592653589#define setdouble setprecision#define REP(i,n) for(ll i=0;i<(n);++i)#define OREP(i,n) for(ll i=1;i<=(n);++i)#define RREP(i,n) for(ll i=(n)-1;i>=0;--i)#define ALL(v) (v).begin(), (v).end()#define GOODBYE do { cout << "-1" << endl; return 0; } while (false)#define MM <<" "<<#define Endl endl#define debug true#define debug2 falselong long power(long long b,long long e,long long mod=LLONG_MAX){/*Copyright (c) 2021 0214sh7https://github.com/0214sh7/library/*/long long r=1;while(e){if(e&1){r=(r*b)%mod;}b=(b*b)%mod;e >>=1;}return r;}int main(void){//cin.tie(nullptr);//ios::sync_with_stdio(false);ll N,P;cin >> N >> P;ll t = 0;REP(i,N){ll k = i+1;while(k%P==0){k/=P;t++;}}ll f = 1,g = 1;REP(i,N){f = (f*(i+1))%MOD;g = (g*(i+1))%(MOD-1);}ll r = power(f,g,MOD);//cout << f MM g MM r MM t << endl;ll Ans = (r*t)%MOD;cout << Ans << endl;return 0;}