当 n + 1 为偶数时 f(n + 1) = 0 ,当 n + 1 为奇数时 f(n + 1) = \frac{2}{n + 1} ,但是当 n \ge 998244353 时,逆元未定义,输出 -1 。
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int MOD=998244353;
int g,n;
int ksm(int a,int b,int mod=MOD)
{
int ans=1;
while(b)
{
if(b&1)ans=ans*a%mod;
a=a*a%mod,b>>=1;
}
return ans;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>g;
while(g--)
cin>>n,cout<<(n>=MOD?-1ll:((n&1)?2*ksm(n+1,MOD-2)%MOD:0ll))<<'\n';
return 0;
}