求助证明
  • 板块灌水区
  • 楼主Andy_hpy
  • 当前回复13
  • 已保存回复13
  • 发布时间2025/2/7 22:54
  • 上次更新2025/2/8 10:50:48
查看原帖
求助证明
1039717
Andy_hpy楼主2025/2/7 22:54

突然发现 i=3ni3modn=0\sum_{i = 3} ^ n i ^ 3 \mod n = 0 上面这个公式已经用程序验证在n1000n \le 1000的时候都成立。 代码:

#include<iostream>
using namespace std;
typedef long long ll;
typedef double db;
typedef long double ldb;
const ll MAXN=1005;
ll a[MAXN][MAXN];
ll gcd(ll x,ll y){
    return y==0?x:gcd(y,x%y);
}
bool f(ll x,ll y){
	if(x<MAXN&&y<MAXN){
		if(a[x][y]!=0){
			if(a[x][y]==1)return true;
			return false;
		}else if(gcd(x,y)==1){
			a[x][y]=1;
			return true;
		}else{
			a[x][y]=-1;
			return false;
		}
	}else{
    	return gcd(x,y)==1;
	}
}
ll sqr3(ll x,ll MOD){
    return x*x%MOD*x%MOD;
}
ll calc(ll n){
    const ll MOD=n;
    ll ans=0;
    for(ll i=1;i<=n;++i){
        if(f(i,n)){
            ans=(ans+sqr3(i,MOD))%MOD;
        }
    }
    return ans;
}
int main() {
    ll n;
    cin>>n;
    for(ll i=1;i<=n;++i){
    	if(calc(i)!=0){
    		cout<<i<<endl;
		}
	}
    return 0;
}

有没有哪位大佬能用数学证明吗???

2025/2/7 22:54
加载中...