/**
* @Author: lndff
* @Date: 2023/10/27 14:22:55
* @LastEditors: lndff
* @LastEditTime: 2023/10/27 14:22:55
* Description:
* Copyright: Copyright (©)}) 2023 lndff. All rights reserved.
*/
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define LL long long
const int MOD = 1e7 + 10;
int ksm(int a, int p){
int temp = 1;
while(p){
if (p & 1)
temp = (1ll * temp * a) % MOD;
p >>= 1;
a = (1ll * a * a) % MOD;
}
return temp;
};
int n, f[100], tot, ans = 1;
signed main(){
freopen("P4317.in","r",stdin);
freopen("P4317.out","w",stdout);
cin >> n;
for (int i = 49; i >= 0; i--){
for (int j = 49; j > 0; j--){
f[j] = (1ll * f[j] + 1ll * f[j - 1]) % MOD;
}
if ((n >> i) & 1) ++f[tot++];
}
++f[tot];
for (int i = 1; i <= 49; i++){
ans = (1ll * ans * (LL)ksm(i, f[i])) % MOD;
}
cout << ans;
}
其中40行f[j] = (1ll * f[j] + 1ll * f[j - 1]) % MOD;取了模会报错, 删掉%MOD反而全A了, 请问是为什么啊