POJ 1305 Fermat vs. Pythagoras
来源:互联网 发布:北京seo服务价格 编辑:程序博客网 时间:2024/05/16 07:51
大意:给定一个整数N,求N范围内(x,y,z <= n)本原的毕达哥拉斯三元组的个数,以及N以内且毕达哥拉斯三元组不涉及的数的个数。
思路:
本原毕达哥拉斯方程组满足:
x = m^2 - n^2;
y = 2*m*n;
z = m^2 + n^2;
其中m > n,且m,n奇偶性不同。
在此题中,要求所给范围内的毕达哥拉斯三元组,只需对m,n进行枚举即可,然后将三元组乘以i(保证i*z在所给的范围之内),就可以求出所有的毕达哥拉斯三元组。
#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int MAXN = 1000010;int vis[MAXN];int gcd(int a, int b){return b == 0? a:gcd(b, a%b);}int n;void init(){memset(vis, 0, sizeof(vis));}void solve(int n){init();int x, y, z;int m = (int)sqrt(n+0.5);int ans1 = 0, ans2 = 0;for(int i = 1; i <= m; i++){for(int j = i+1; j <= m; j++) if(i % 2 != j % 2){if(i*i + j*j > n) break;if(gcd(i, j) == 1){x = j*j - i*i;y = 2*i*j;z = j*j + i*i;ans1++;for(int t = 1; ; t++){if(t*z > n) break;vis[t*x] = vis[t*y] = vis[t*z] = 1;}}}}for(int i = 1; i <= n; i++) if(!vis[i]) ans2++;printf("%d %d\n", ans1, ans2);}int main(){while(~scanf("%d", &n)){solve(n);}return 0;}
- POJ 1305 Fermat vs. Pythagoras
- POJ 1305 Fermat vs. Pythagoras
- poj 1305 Fermat vs. Pythagoras
- POJ.Fermat vs. Pythagoras
- poj 1305——Fermat vs. Pythagoras
- POJ 1305 Fermat vs. Pythagoras(勾股数)
- POJ 1305 Fermat vs. Pythagoras 笔记
- POJ-1305-Fermat vs. Pythagoras-(本原勾股数)
- POJ-1305(勾股定理)(Fermat vs. Pythagoras)
- UVa 106/POJ 1305 Fermat vs. Pythagoras(数论&勾股数)
- POJ 1305 Fermat vs. Pythagoras 解原毕达哥拉斯三元组
- POJ 1305 Fermat vs. Pythagoras (构造 毕达哥拉斯三元组)
- POJ 1305:Fermat vs. Pythagoras - 勾股定理/毕达哥拉斯三元组
- POJ 1305 Fermat vs. Pythagoras (本原毕达哥拉斯三元组)
- Poj.1305 Fermat vs. Pythagoras【毕达哥拉斯三角形】 2015/04/21
- POJ 1305-Fermat vs. Pythagoras(毕达哥拉斯三元组的解)
- POJ 1305 Fermat vs. Pythagoras (本原勾股数组)
- POJ 1305 Fermat vs. Pythagoras [本源毕达哥拉斯不等式]【数论】
- android 模块编译,mm 命令
- 古巨基
- 设计模式之--策略模式
- 配置一个好用的Android模拟器
- java中使用队列(java.util.Queue)
- POJ 1305 Fermat vs. Pythagoras
- LIBXML2库使用指南
- Something About Ofiice Develop
- 每个程序员都应该知道的福利
- CAP GMT pstext: Record 1 is incomplete (skipped)和 psxy: Mismatch between actual...问题的解决
- Delphi图像处理 -- 模糊
- 修改表结构语句
- KINDLE TOUCH修复板砖过程
- NYOJ-139:我排第几个