站外题求助
  • 板块灌水区
  • 楼主IAKIOI__
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/16 11:50
  • 上次更新2024/7/16 13:55:37
查看原帖
站外题求助
1027690
IAKIOI__楼主2024/7/16 11:50

给定质数 pp,自然数 nn,求方程解的数量

xn+yn≡zn(modx^n+y^n≡z^n(mod p)p)

0<=x,y,z<=n−10<=x,y,z<=n-1

#include<bits/stdc++.h>
using namespace std;
const int MAXN=3e6;
int ksm(int x,int y,int z){
	int ans=1;
	while (y>0){
		if (y&1){
			ans*=x%z;
			ans%=z;
		}
		y>>=1,x=x*x%z;
	}
	return ans;
}
int n,p,ans,f[MAXN];
int main(){
	cin>>p>>n;
	for(int i=0;i<n-1;i++){
		f[ksm(i,n,p)]++;
	}
	for(int i=0;i<p;i++){
		for(int j=0;j<p;j++){
			if(i==j){
				ans+=f[i]*f[(2*i)%p];
			}else{
				ans+=f[i]*f[j]*f[(i+j)%p];
			}
		}
	}
	cout<<ans;
	return 0;
}
```
2024/7/16 11:50
加载中...