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
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面授班有哪些优势
- 使用具体的例子来讲解如何使用Esper
- 应用系统中交互式报表功能解析
- 单例模式实现方式详解
- svn之Previous operation has not finished; run ‘cleanup‘ if it was interrupted解决办法
- LaTeX中添加\usepackage{subfigure}一直报错的解决办法,亲测
- 自定义右键菜单,禁用浏览器自带的右键菜单[右键菜单实现--Demo]
- 农行支付php,ECSHOP教程:农行支付接口开发(含手机端)
- 眼底图像血管增强与分割--(3)基于PCA的增强算法原理及实现
- 挑战杯创业计划书_基于云计算的下料优化软件_1. 执行总结
- 必看!100道Java程序员面试题(含答案)!
- 爬虫——获取页面源代码
- ubuntu怎么连网线上网_安装完ubuntu 16.04连接网线无法上网解决
- 关于千牛移动端纯H5插件和QAP应用中H5页面的概念
- mysql使用 union all查询统计总数量
- 【破解作品】Access密码查看器 破解版 注册码
- 十种燃烧卡路里减肥运动方法
- 帮助文档的使用和制作
- 高新兴ME3616C1A模组连接阿里云平台
- 国货美妆需要“诗和远方”
热门文章
- Winmail反垃圾邮件指南:使用Winmail时,比较有效的过滤垃圾邮件的设置
- 计算机msvcp100.dll,msvcp100.dll丢失怎样修复
- 让zheng支持activiti工作流
- 2022年最新广东道路运输安全员真题题库及答案
- python爬取豆瓣图书top250_python3 爬虫学习:爬取豆瓣读书Top250(四)
- python推荐书豆瓣_基于Python的豆瓣图书评论数据获取与可视化分析
- angular引入ng-zorro中的icon图标方法
- WebStorm中TODO的作用
- 2022.4.24腾讯笔试记录
- 易到暂停办理线下提现 称贾跃亭隐瞒巨额债务成影响提现关键因素