问个问题
查看原帖
问个问题
602632
_7Mr楼主2023/10/16 10:22
#include<bits/stdc++.h>
#define int long long
#define double long double
#define INF INT_MAX
using namespace std;
const int mod=998244353*2;//one
int a,b,ans;
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	cin>>a>>b;
	b%=mod,ans=b;
	for(int i=2;i*i<=a;i++){
		int sum=0;
		while(a%i==0){
			a/=i;
			sum++;
		}
		ans=ans*(b*sum%mod+1)%mod;
	}
	if(a!=1) ans=ans*(b+1)%mod;
	cout<<ans/2<<endl;//two
	return 0;
}

为什么在模数*2,答案/2的情况下能AC,求解释

2023/10/16 10:22
加载中...