列表

详情


NC205056. 牛牛爱数学

描述

牛牛可喜欢数学啦。
作为数学爱好者,牛牛可是个数学大师。牛牛的数学老师也知道这一点,所以让牛牛参与了数学考试的命题。牛牛为了让大家都能做对,所以出了一个简单的题。现在有a、b、c三个正整数,牛牛想要知道,是否存在一个正整数d,使得a2d2+b2c2=2abcd成立。

输入描述

输入一个T( 1≤T≤105),表示接下来有T组测试数据,接下来T行。
每行输入三个数a、b、c。(1≤a、b、c≤109)

输出描述

输出有T行,每行对应一个结果,如果存在,请输出任意一个满足的d的值,不存在请输出"-1"。

示例1

输入:

2
1 1 1
3 4 5

输出:

1
-1

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Java 解法, 执行用时: 320ms, 内存消耗: 17800K, 提交时间: 2023-08-11 14:37:00

import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
		PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));
		st.nextToken();
		int t = (int)st.nval;
		while(t-->0) {
			st.nextToken();
			long a=(long)st.nval;
			st.nextToken();
			long b=(long)st.nval;
			st.nextToken();
			long c=(long)st.nval;
			
			if(b*c%a==0) pw.println(b*c/a);
			else pw.println("-1");
			
		}
		pw.flush();
	}
}

Java 解法, 执行用时: 1274ms, 内存消耗: 20428K, 提交时间: 2023-08-11 14:35:22

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int t=sc.nextInt();
        while(t-->0){
            long a=sc.nextLong();
            long b=sc.nextLong();
            long c=sc.nextLong();
            if(gcd(b*c,a)!=a) System.out.println(-1);
            else System.out.println(b*c/a);
        }
    }
    static long gcd(long a,long b){
        return b==0?a:gcd(b,a%b);
    }
}

Python3 解法, 执行用时: 805ms, 内存消耗: 5112K, 提交时间: 2023-08-11 14:34:05

t = int(input())
for i in range(t):
    a, b, c = map(int, input().split())
    if b * c % a == 0:
        print( b * c // a)
    else:
        print(-1)

上一题