HNU_11722

由于勾股数a,b,c可以表示成a=m^2-n^2,b=2*m*n,c=m^2+n^2,因此可以枚举n找到所有可能的互素的勾股数,然后去掉其中重复的解即可。

这个题目还可以用一个剪枝,就是如果c%4 !=1的话一定无解。

#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>#define MAXD 60000int C, a[MAXD], b[MAXD], r[MAXD];int gcd(int x, int y){return y == 0 ? x : gcd(y, x % y);}int cmp(const void *_p, const void *_q){int *p = (int *)_p, *q = (int *)_q;return a[*p] - a[*q];}void solve(){int i, j, k, t, n, cnt, x, y;    k = (int)sqrt(C + 0.5);    n = 0;for(i = 1; i <= k; i ++)    {        j = (int)sqrt(C - i * i + 0.5);if(i < j && i * i + j * j == C)        {            x = j * j - i * i, y = 2 * i * j;if(gcd(x, y) == 1 && gcd(x, C) == 1 && gcd(y, C) == 1)            {if(x > y)                    t = x, x = y, y = t;                a[n] = x, b[n] = y;                    ++ n;            }        }    }for(i = 0; i < n; i ++)        r[i] = i;    qsort(r, n, sizeof(r[0]), cmp);for(cnt = i = 0; i < n; i ++)if(!i || a[r[i]] != a[r[i - 1]])            ++ cnt;    printf("There are %d solution(s).\n", cnt);for(i = 0; i < n; i ++)if(!i || a[r[i]] != a[r[i - 1]])            printf("%d^2 + %d^2 = %d^2\n", a[r[i]], b[r[i]], C);}int main(){int t = 0;for(;;)    {        scanf("%d", &C);if(!C)break;        printf("Case %d:\n", ++ t);if(C % 4 != 1)            printf("There are 0 solution(s).\n");else            solve();        printf("\n");    }return 0;}

HNU 11722 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. 求逆元 - HNU 13412 Cookie Counter

    Cookie Counter Problem's Link:  http://acm.hnu.cn/online/?action=problem&type=show&id=13412& ...

  4. Rouche Theorem(Stein复分析)

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

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

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

  6. Magnetism and Earnshaw‘s Theorem

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

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

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

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

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

  9. hall's marriage theorem

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

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

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

最新文章

  1. 6000毫安以上智能手机_6000大电池+骁龙8核处理器,Redmi新机来袭:价格太美
  2. Python标准库threading模块Condition原理浅析
  3. mapreduce mysql_MapReduce直接连接MySQL获取数据
  4. Codeforces - 102222C - Caesar Cipher
  5. 易汉博承建的数据库再发Nature子刊
  6. bootstrap悬停下拉导航的实现
  7. 【java】JOptionPane的基本操作
  8. 9.性能之巅 洞悉系统、企业与云计算 --- 磁盘
  9. Java程序员必备的一些流程图/架构图(拿走不谢)
  10. java1.8.0_java jdk官方下载|java jdk v1.8.0 官方免费版-520下载站
  11. http协议中的1xx,2xx,3xx,4xx,5xx状态码分别表示什么?列举常见错误码及含义
  12. 服务器winsxs文件夹怎么清理工具,win10系统winsxs文件夹该如何删除?win10删除winsxs文件夹的两种方法...
  13. 清扫重复文件夹的数据刷
  14. Linux内核踩坑笔记
  15. WordPress如何设置先登录再进入主页
  16. php自动上传到onedrive,让iPhone里的照片自动上传备份到OneDrive
  17. [golang]通过github下载golang官方工具包
  18. 请举一个你印象最深刻的热点新闻事件并分析网络媒体在其中所起的作用?
  19. 【附源码】计算机毕业设计java疫情下小区网格化管理系统设计与实现
  20. Vue.$nextTick你真的懂了吗?

热门文章

  1. 干货|50个大数据面试问题及答案第一篇:10个大数据面试入门级问题
  2. 标注数据类型及对应的监督学习方案
  3. 买土豆的故事(转中外管理)
  4. 台式计算机为什么数字输入不了,计算机键盘无法输入数字,为什么?
  5. 提高情商,从这几方面做
  6. android开发动态图ae,动影ae动态图片特效制作
  7. 一次性餐巾行业调研报告 - 市场现状分析与发展前景预测
  8. 2019/04/05 腾讯笔试 后台及综合卷(java)
  9. 多媒体计算机用什么音箱好,5款性价比高的电脑小音箱推荐(每一款音质都相当ok)...
  10. 软件即服务的三重境界