毕达哥斯拉定理其实就是勾股定理,x^2 + y^2 = z^2,满足这个方程的正整数三元组被成为毕达哥斯拉三元组

定理:正整数x,y,z,构成一个本原毕达哥斯拉三元组且y为偶数,当且仅当存在互素的正整数n,m,(n<m),其中m与n的奇偶性不同,并且满足

x = m^2 - n^2

y = 2 * m * n;

i * z = m^2 + n^2

解析前小广告!总是做算法,不如来个陶冶情操的文章一篇: http://www.sanwen.net/subject/3628849/

题意:

求满足以a,b,为直角边的c为斜边,切满足方程a +b +c <=L的直角三角形的个数

根据三元组

x = m^2 - n^2

y = 2 * m * n;

i * z = m^2 + n^2

对n,m,进行枚举,然后讲三元组乘以 i 倍,就能求出所有满足条件的毕达哥斯拉三元组,根据定理可知 求出满足要求的三元组 也就求出了个数

#include<iostream>
#include<cstdio>
#include<list>
#include<algorithm>
#include<cstring>
#include<string>
#include<queue>
#include<stack>
#include<map>
#include<vector>
#include<cmath>
#include<memory.h>
#include<set>#define ll long long#define eps 1e-8#define inf 0xfffffff//const ll INF = 1ll<<61;using namespace std;//vector<pair<int,int> > G;
//typedef pair<int,int > P;
//vector<pair<int,int> > ::iterator iter;
//
//map<ll,int >mp;
//map<ll,int >::iterator p;bool vis[1000000 + 5];int ans = 0;void clear() {memset(vis,false,sizeof(vis));ans = 0;
}ll exgcd(ll a, ll b, ll &x0, ll &y0)  {if(!b) {x0 = 1; y0 = 0;return a;}ll r = exgcd(b, a%b, y0, x0);y0 -= a/b*x0;return r;
}void cal(int t) {int tmpn = sqrt(t * 1.00);for(int n=1;n<=tmpn;n++) { for(int m = n+1;m<=tmpn;m++) {if(m * m * 2+ 2 * n *m > t) break;if(n%2 != m%2) {ll x0,y0;if(exgcd(m,n,x0,y0) == 1) {int x = m * m - n * n;int y = 2 * m * n;int z = m * m + n * n;for(int i=1;;i++) {if(i * (x + y + z) > t)break;ans++;}}}}}
}int main() {int n;while(scanf("%d",&n) == 1) {clear();cal(n);printf("%d\n",ans);}return EXIT_SUCCESS;
}

FZU1669 Right-angled Triangle 本原毕达哥斯拉三元组 特殊不定方程的应用相关推荐

  1. POJ1305 UVA106 Fermat vs. Pythagoras 毕达哥斯拉三元组 特殊的不定方程

    特殊不定方程的应用,跟普通的不定方程一样,还是要依靠扩展欧几里德来解决,,可能方程有点偏, 题意,给一个正数N,求小于等于正数N的树中,本原的毕达哥斯拉三元组的个数  和  毕达哥斯拉三元组不涉及N以 ...

  2. poj 1305 Fermat vs. Pythagoras(毕达哥斯拉三元组)

    毕达哥斯拉三元组,即勾股数组. 勾股数组参考资料:http://blog.csdn.net/magicnumber/article/details/6410043 s的取值范围:3≤s≤√(2n-1) ...

  3. 数论 毕达哥斯拉三元组 + 欧拉函数 + 容斥原理 hdu3939

    涉及的知识点还是挺多的,这题时间特卡.... 1.毕达哥斯拉三元组: 三元组(a,b,c),其中a,b,c无公因数,且满足a² +b² =c². a为奇数,b为偶数,c为奇数 可以得到如下勾股数组定理 ...

  4. 毕达哥斯拉三元组poj1305

    对于方程:,满足条件:x,y,z两两互素的正整数解为: ,其中m>n>0,gcd(m,n)=1,m,n一奇一偶. 典型题目:POJ1305

  5. JAVA:实现是否为Pythagorean Triples毕达哥斯拉三角数算法(附完整源码)

    JAVA:实现是否为Pythagorean Triples毕达哥斯拉三角数算法 package com.thealgorithms.maths;public class PythagoreanTrip ...

  6. 数论基础-小白学算法必学(一天一夜的成果)万字

    整数部分 前言 一.最大取整函数 二.丢番图逼近 三.和与积 四.整除性 五.整数的表示法和运算 五.素数和最大公因子 六.欧几里得算法 七.算术基本定理 八.因子分解法和费马数 九.线性丢番图方程 ...

  7. 【更新完毕】《算法竞赛中的初等数论》(ACM / OI / MO)前言、后记、目录索引(十五万字符的数论书)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 <算法竞赛中的初等数论>的全部内容的 Portable Document Format 版 ...

  8. 震撼!17 个改变世界的数学公式...

    来源:量子位 到底是什么样的公式,能让"钢铁侠"马斯克下场点赞? 答: 它们改变了世界. 被给予如此高度评价的公式,一共包含17个: 而且这位博主发布推文才短短数小时,便揽获了19 ...

  9. 17个改变世界的数学公式,马斯克点赞

    金磊 发自 凹非寺 量子位 | 公众号 QbitAI 到底是什么样的公式,能让"钢铁侠"马斯克下场点赞? 答: 它们改变了世界. 被给予如此高度评价的公式,一共包含17个: 而且这 ...

最新文章

  1. 人工智能、网络空间对国家核安全的影响
  2. Kali Linux搜索软件包
  3. VS 2005 文本编码小技巧 --中文亂碼問題解決
  4. 编写Tesseract的Python扩展
  5. Android之用命令uninstall卸载apk和用 -i 过滤日志忽略大小写
  6. Unity之如何从fbx提取Animation clip文件
  7. 《高性能MySQL》 第1章 MySQL架构与历史
  8. 2数据库表空间容量查询_Zabbix监控达梦数据库表空间
  9. 通过shell脚本提交网站404死链
  10. python输出10行带标号的hello、world_Python输出hello world(各行命令详解)
  11. linux accept 修改数据包,Linux协议栈accept和syn队列问题
  12. 库存管理软件挑选窍门:怎么才算合格的库存管理软件?
  13. SERC2013 J You Win!
  14. 阿帕奇服务器搭建网站,使用Apache搭建Web网站服务器
  15. ICPC North Central NA Contest 2017 H.Zebras and Ocelots
  16. 三维建模初学者学习方法及资料
  17. npm WARN deprecated har-validator@5.1.5: this library is no longer supportednpm WARN deprecated uui
  18. 如何在-Mac-上强制退出应用
  19. qt 判断文件是否存在
  20. svn报错:Cannot negotiate authentication mechanism

热门文章

  1. [翻译]windows下 连接到 bitnami的phpmyadmin
  2. PWM的使用–舵机模块和电机驱动模块
  3. Linux下安装印象笔记
  4. java二维码的生成工具
  5. sql和java判断哪个效率高_如何写出高质量效率高的sql语句,看完这篇就懂了
  6. 单片机数码管从00到99C语言_用51单片机控制 2位数码管动态显示 00 ~ 99。
  7. docker 详细介绍安装步骤以及简单的运用
  8. java/php/net/python二手商品交易平台的设计与实现设计
  9. Python实现优校园自动检测跳页
  10. Access denied for user ‘root‘@‘%‘ to database ‘information_schema‘