HNU11722 The Gougu Theorem
原题传送:http://acm.hnu.cn/online/?action=problem&type=show&id=11722&courseid=0
给出z,求符合方程x2 + y2 = z2的个数并输出。
这个问题在二潘的《初等数论》中有很详细的阐述。简单来说就是:
如果 z = i2 + j2
那么
x = i2 - j2
y = 2 * i * j
![](/assets/blank.gif)
![](/assets/blank.gif)
1 #include <stdio.h> 2 #include <string.h> 3 #include <algorithm> 4 #include <math.h> 5 #include <stdlib.h> 6 #include <vector> 7 using namespace std; 8 typedef pair<int, int> pii; 9 10 int gcd(int a, int b) 11 { 12 return b == 0 ? a : gcd(b, a % b); 13 } 14 15 int main() 16 { 17 int c, cas = 1, i, j, x, y; 18 vector<pii> v; 19 while(scanf("%d", &c), c) 20 { 21 printf("Case %d:\n", cas ++); 22 if(c % 4 != 1) 23 { 24 printf("There are 0 solution(s).\n\n"); 25 continue; 26 } 27 v.clear(); 28 int len = (int)sqrt(c + 0.5); 29 for(i = 1; i <= len; i ++) 30 { 31 j = (int)sqrt(c - i * i + 0.5); 32 x = j * j - i * i, y = 2 * i * j; 33 if(i < j && i * i + j * j == c && gcd(x, y) == 1 && gcd(c, x) == 1 && gcd(c, y) == 1) 34 { 35 v.push_back(make_pair(min(j * j - i * i, 2 * i * j), max(j * j - i * i, 2 * i * j))); 36 } 37 } 38 sort(v.begin(), v.end()); 39 len = v.size(); 40 printf("There are %d solution(s).\n", len); 41 for(int i = 0; i < len; i ++) 42 { 43 printf("%d^2 + %d^2 = %d^2\n", v[i].first, v[i].second, c); 44 } 45 putchar('\n'); 46 } 47 return 0; 48 }
转载于:https://www.cnblogs.com/huangfeihome/archive/2012/10/06/2713058.html
HNU11722 The Gougu Theorem相关推荐
- Latex公式编号问题
目录 对某个公式编号/不编号 对某些公式整体编号 较长公式拆行与编号 在写文章时,我们会遇到各种各样的对公式编号的要求,例如对某些公式标号而对另外一些公式不编号.对某些公式整体编号.对一个拆为几行的较 ...
- ADPRL - 近似动态规划和强化学习 - Note 5 - Banach Fixed Point Theorem in Dynamic Programming
动态规划中的巴拿赫不动点定理 5. Banach Fixed Point Theorem in Dynamic Programming 5.1 巴拿赫不动点定理定理 (Banach fixed poi ...
- Rouche Theorem(Stein复分析)
Rouche Theorem: \quadIffandgareholomorphicfunctionsinaregionΩcontainingacircleCanditsinterior,and∣f( ...
- 简要介绍一下贝叶斯定理( Bayes‘ theorem)
简要介绍一下贝叶斯定理( Bayes' theorem) 在引出贝叶斯定理之前,先学习几个定义: 条件概率(又称后验概率)就是事件A在另外一个事件B已经发生条件下的发生概率.条件概率表示为P(A|B) ...
- Magnetism and Earnshaw‘s Theorem
Magnetism and Earnshaw's Theorem Speaking well about Homer is not a thing you have mastered, it's a ...
- 中国剩余定理(Chinese Remainder Theorem)
中国剩余定理 民间传说着一则故事--"韩信点兵". 秦朝末年,楚汉相争.一次,韩信将1500名将士与楚王大将李锋交战.苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是韩信整顿 ...
- 【计算理论】不可判定性 ( 停机问题 | 图灵机语言是否空集问题 | 图灵机是否等价问题 | 是否存在自动机接受图灵机语言问题 | 莱斯定理 Rice‘s Theorem )
文章目录 一.不可判定性 ( Undecidability ) 二."停机问题" 不可判定 三."图灵机语言是否空集问题" 不可判定 四."图灵机是否 ...
- hall's marriage theorem
HALL定理 Hall 結婚定理(Hall's Marriage Theorem)與其應用─此定理由英國數學家Philip Hall 提出.令 V 與W 為兩個分開的族群,但 V 至W 之間有連線,令 ...
- UA MATH563 概率论的数学基础 中心极限定理7 Kolmogorov extension theorem及其扩展
UA MATH563 概率论的数学基础 中心极限定理7 Kolmogorov extension theorem及其扩展 上一讲为了构造包含无限个独立随机变量的序列,我们使用了Kolmogorov e ...
- 现代密码学2.4--香农定理/Shannon Theorem:完美安全的充分必要条件
现代密码学2.4--香农定理/Shannon Theorem:完美安全的充分必要条件 香农定理/Shannon Theorem 博主正在学习INTRODUCTION TO MODERN CRYPTOG ...
最新文章
- 深入理解java虚拟机之类文件结构以及加载
- 字母全排列快速算法C代码
- python getmenu不到菜单句柄,从弹出菜单win32 api Python中选择项目
- android widget 发送广播,android-从应用程序向小部件发送数据
- 47 -算法 -回文串 -Leetcode 125 - 验证回文串
- bzoj1562[NOI2009] 变换序列
- 使用Windows服务发布WCF服务
- Linux用户登出之后保持后台进程(nohup)
- 2019语言与智能技术竞赛
- 2020教师计算机考试笔试题,2020年全国教师资格考试信息技术学科知识与能力练习题...
- 国军标 软件测评 静态分析常见问题总结
- 艾宾浩斯遗忘曲线.pdf百日计划表.pdf考研时间计划表.pdf每日打卡.pdf每日复习计划表.pdf详细日计划.pdf月计划表.pdf周计划.pdf
- 计算机网络总结-一本书一个晚上一个奇迹
- HTML5基本标签使用header,nav和footer
- Python数据分析与处理——处理中国地区信息
- Linux内核中dev_info、dev_dbg、dev_err及动态调试
- C语言————有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,下面的程序统计卖完西瓜所需的天数
- 明源地产ERP实施五步法
- 微信浏览器网页点击图片缩放
- 我热爱计算机作文450字,我的国学机作文450字