勾股数定理

数论 专栏收录该内容
19 篇文章 0 订阅

一、勾股数
形如 一类的数称为勾股数(a,b,c为正整数)。

x^2+y^2=z^2

二、一些性质
1.直角三角形的两条直角边和斜边满足勾股数定理。

2. .a+b>c,a-b<c

3.当a为奇数时, a=2n+1,则 b=2n^2+2n=(a-1)^2/2+a-1     ;c=b+1;

4.当a为偶数时,a=2n,则 , b=n^2+2n=a^2/4+a    ;     c=b+2;   

三、费马大定理
,  当n>2时,方程没有正解。
 

people in USSS love math very much, and there is a famous math problem . 

give you two integers nn,aa,you are required to find 22 integers bb,cc such that anan+bn=cnbn=cn.

one line contains one integer TT;(1≤T≤1000000)(1≤T≤1000000) 

next TT lines contains two integers nn,aa;(0≤n≤1000(0≤n≤1000,000000,000,3≤a≤40000)000,3≤a≤40000) 

print two integers bb,cc if bb,cc exits;(1≤b,c≤1000(1≤b,c≤1000,000000,000)000); 

else print two integers -1 -1 instead.

Sample Input

1
2 3

Sample Output

4 5

 

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n,a;
        scanf("%d %d",&n,&a);
        if(n!=1&&n!=2) printf("-1 -1\n");
        else if(n==1) printf("1 %d\n",a+1);
        else
        {
            long long  b,c;
			if(a%2!=0)
			{

				b=(a-1)*(a-1)/2+a-1;
				c=b+1;
			}
			else
			{
				b=a*a/4-1;
				c=b+2;
			}
			if(a*a+b*b==c*c)
				printf("%lld %lld\n",b,c);
			else
				printf("-1 -1\n");
        }
    }
    return 0;
}

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值