zoukankan      html  css  js  c++  java
  • 简单数论的题解

    给定n,pn,p,求值:

    [(i=1nj=1ni2j2)×36]mod p[ (sum_{i=1}^n sum_{j=1}^n i^2 j^2 ) imes 36 ]mod p

    让大家接触提前接触一下数论

    [(i=1nj=1ni2j2)×36]mod p [ (sum_{i=1}^n sum_{j=1}^n i^2 j^2 ) imes 36 ]mod p

    这道题的意思是什么呢?

    我相信我打一个暴力大家也懂了

    #include<bits/stdc++.h>
    using namespace std;
    int n,s=0,x;
    int main(){
    	cin>>n>>x;
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=n;j++)
    			s+=i*i+j*j;
    	s*=36;
    	s%=x;
    	cout<<s;
       return 0;
    }
    

    这样写,大概能得30

    这不就是平方和吗,每个数的平方算了2n
    [(i=1ni2×2n)×36]mod p [ (sum_{i=1}^n i^2 imes 2n ) imes 36 ] mod p

    #include<bits/stdc++.h>
    using namespace std;
    int n,s=0,x;
    int main(){
    	cin>>n>>x;
    	for(int i=1;i<=n;i++)s+=i*i*n*2;
    	s%=x;
    	s*=36;
    	s%=x;
    	cout<<s;
       return 0;
    }
    

    这样写大概能得50

    我们继续推

    我们知道

    i=1ni2=n×(n+1)×(2n+1)6 sum_{i=1}^n i^2=dfrac{n imes (n+1) imes (2n+1)}{6}

    把这个带入式子

    [(i=1ni2×2n)×36]mod p=[(n×(n+1)×(2n+1)6×2n)×36]mod p=[n×(n+1)×(2n+1)×n×12]mod p={[n×(n+1)×(2n+1)]2}mod p [ (sum_{i=1}^n i^2 imes 2n ) imes 36 ] mod p \ = [ (dfrac{n imes (n+1) imes (2n+1)}{6} imes 2n ) imes 36 ] mod p \= [n imes (n+1) imes (2n+1) imes n imes 12 ] mod p \ = {[ n imes (n+1) imes (2n+1)]^2 } mod p

    代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    int main(){
    	int n,p;
    	cin>>n>>p;
    	long long ans=n;
    	ans*=n+1;
    	ans%=p;
    	ans*=2*n+1;
    	ans%=p;
    	ans*=ans;
    	ans%=p;
    	cout<<ans;
    	return 0;
    }
    
  • 相关阅读:
    Oracle面试题目及解答
    java -jar Incompatible argument to function
    plsql 查询到别的用户下面的表
    redis数据类型[string 、list 、 set 、sorted set 、hash]
    redis-cli 常用命令
    js判断浏览器,包括Edge浏览器
    HTMl5的sessionStorage和localStorage
    JS实现密码加密
    sprintf.js
    js-crc32
  • 原文地址:https://www.cnblogs.com/zhaohaikun/p/12816953.html
Copyright © 2011-2022 走看看