博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HNU 11720 God Created The Integers
阅读量:5174 次
发布时间:2019-06-13

本文共 850 字,大约阅读时间需要 2 分钟。

HNU_11720

    这个题目本来是一个数论课本的课后习题,最后可以得到结论sp=(p*p-1)/24-(p-1)/4(我暂时还没看懂怎么推导的……),这样就可以很容易的算出sp的值,于是就可以得到sp*rp=k*p+1,变形得sp*rp-p*k=1,又因为p是素数且可以证明gcd(sp,p)==1,所以这个方程必然有解,于是用拓展欧几里得求出rp即可。

#include
#include
long long int P; void gcd(long long int a, long long int b, long long int &x, long long int &y) {
if(b == 0) x = 1, y = 0; else {
gcd(b, a % b, y, x); y -= x * (a / b); } } void solve() {
int i, j, k; long long int x, y, ans = (P * P - 1) / 24 - (P - 1) / 4; gcd(ans, P, x, y); printf("%lld\n", (x % P + P) % P); } int main() {
int t, tt; scanf("%d", &t); for(tt = 0; tt < t; tt ++) {
scanf("%lld", &P); printf("Case #%d: ", tt + 1); solve(); } return 0; }

 

转载于:https://www.cnblogs.com/staginner/archive/2012/02/22/2363695.html

你可能感兴趣的文章
MySQL MGR集群搭建
查看>>
吴恩达深度学习笔记 cousrse4 week1作业
查看>>
程序员前辈走过的路
查看>>
UBUNTU 10.04 更新源 补充
查看>>
outputcache
查看>>
pc110301QWERTYU
查看>>
go 数组
查看>>
ilspy 点击根节点后进行解析的方法
查看>>
promise原理及使用方法
查看>>
MVC实例应用模式
查看>>
欧拉回路和欧拉路径
查看>>
Java 推荐读物与源代码阅读
查看>>
BlogEngine.Net架构与源代码分析系列part1:开篇介绍
查看>>
N皇后问题
查看>>
优化深度神经网络(二)优化算法 SGD Momentum RMSprop Adam
查看>>
2016腾讯全球合作伙伴大会马化腾《给合作伙伴的一封信》
查看>>
Effective JavaScript Item 38 调用父类的构造函数在子类的构造函数
查看>>
Android 开发新方向 Android Wear ——概述
查看>>
固定浮窗的实现代码【转载】
查看>>
C#Windows的HelloWorld
查看>>