[c] sdnuoj1147Pythagoras's Revenge

http://210.44.14.31/problem/show/1147

题目大意:给定任意直角边,求有多少组边能组成直角三角形


利用勾股定理 c^2=a^2+b^2得到 a^2=(c-b)(c+b) 然后设定两个未知数穷举得到答案


#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;

int main()
{
	__int64 a;
	while(cin>>a){
		if(a==0) break;
		__int64 r=0;
		for(__int64 i=1;i<=a/2;i++){
			if(a*a%i==0){
				__int64 j=a*a/i;
				if((i-j)%2==0){
					__int64 b=(j-i)/2;
					if(b>a){
						r++;
					}
				}
			}
		}
		cout<<r<<endl;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值