原题传送: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

View Code

 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相关推荐

  1. Latex公式编号问题

    目录 对某个公式编号/不编号 对某些公式整体编号 较长公式拆行与编号 在写文章时,我们会遇到各种各样的对公式编号的要求,例如对某些公式标号而对另外一些公式不编号.对某些公式整体编号.对一个拆为几行的较 ...

  2. ADPRL - 近似动态规划和强化学习 - Note 5 - Banach Fixed Point Theorem in Dynamic Programming

    动态规划中的巴拿赫不动点定理 5. Banach Fixed Point Theorem in Dynamic Programming 5.1 巴拿赫不动点定理定理 (Banach fixed poi ...

  3. Rouche Theorem(Stein复分析)

    Rouche Theorem: \quadIffandgareholomorphicfunctionsinaregionΩcontainingacircleCanditsinterior,and∣f( ...

  4. 简要介绍一下贝叶斯定理( Bayes‘ theorem)

    简要介绍一下贝叶斯定理( Bayes' theorem) 在引出贝叶斯定理之前,先学习几个定义: 条件概率(又称后验概率)就是事件A在另外一个事件B已经发生条件下的发生概率.条件概率表示为P(A|B) ...

  5. Magnetism and Earnshaw‘s Theorem

    Magnetism and Earnshaw's Theorem Speaking well about Homer is not a thing you have mastered, it's a ...

  6. 中国剩余定理(Chinese Remainder Theorem)

    中国剩余定理 民间传说着一则故事--"韩信点兵". 秦朝末年,楚汉相争.一次,韩信将1500名将士与楚王大将李锋交战.苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是韩信整顿 ...

  7. 【计算理论】不可判定性 ( 停机问题 | 图灵机语言是否空集问题 | 图灵机是否等价问题 | 是否存在自动机接受图灵机语言问题 | 莱斯定理 Rice‘s Theorem )

    文章目录 一.不可判定性 ( Undecidability ) 二."停机问题" 不可判定 三."图灵机语言是否空集问题" 不可判定 四."图灵机是否 ...

  8. hall's marriage theorem

    HALL定理 Hall 結婚定理(Hall's Marriage Theorem)與其應用─此定理由英國數學家Philip Hall 提出.令 V 與W 為兩個分開的族群,但 V 至W 之間有連線,令 ...

  9. UA MATH563 概率论的数学基础 中心极限定理7 Kolmogorov extension theorem及其扩展

    UA MATH563 概率论的数学基础 中心极限定理7 Kolmogorov extension theorem及其扩展 上一讲为了构造包含无限个独立随机变量的序列,我们使用了Kolmogorov e ...

  10. 现代密码学2.4--香农定理/Shannon Theorem:完美安全的充分必要条件

    现代密码学2.4--香农定理/Shannon Theorem:完美安全的充分必要条件 香农定理/Shannon Theorem 博主正在学习INTRODUCTION TO MODERN CRYPTOG ...

最新文章

  1. 深入理解java虚拟机之类文件结构以及加载
  2. 字母全排列快速算法C代码
  3. python getmenu不到菜单句柄,从弹出菜单win32 api Python中选择项目
  4. android widget 发送广播,android-从应用程序向小部件发送数据
  5. 47 -算法 -回文串 -Leetcode 125 - 验证回文串
  6. bzoj1562[NOI2009] 变换序列
  7. 使用Windows服务发布WCF服务
  8. Linux用户登出之后保持后台进程(nohup)
  9. 2019语言与智能技术竞赛
  10. 2020教师计算机考试笔试题,2020年全国教师资格考试信息技术学科知识与能力练习题...
  11. 国军标 软件测评 静态分析常见问题总结
  12. 艾宾浩斯遗忘曲线.pdf百日计划表.pdf考研时间计划表.pdf每日打卡.pdf每日复习计划表.pdf详细日计划.pdf月计划表.pdf周计划.pdf
  13. 计算机网络总结-一本书一个晚上一个奇迹
  14. HTML5基本标签使用header,nav和footer
  15. Python数据分析与处理——处理中国地区信息
  16. Linux内核中dev_info、dev_dbg、dev_err及动态调试
  17. C语言————有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,下面的程序统计卖完西瓜所需的天数
  18. 明源地产ERP实施五步法
  19. 微信浏览器网页点击图片缩放
  20. 我热爱计算机作文450字,我的国学机作文450字

热门文章

  1. RTI公司任命Elektrobit前首席执行官Alexander Kocher为其顾问委员会成员
  2. 用python绘制万花筒_Python实现PS滤镜的万花筒效果示例
  3. 用AlexNet训练MSTAR数据集
  4. 谷歌李开复 我的传奇人生源于十句箴言
  5. 修修补补,不如推倒重建
  6. 网络安全-利用sniffer抓包软件,分析IP头的结构(详解)
  7. Windows下的random_device
  8. 追溯微软亚洲研究院发展历史:在中国商业公司如何做研究院
  9. 利用nero 8刻录DVD教程
  10. vscode使用angular