列表

详情


NC208433. 有趣的数学

描述

wq非常喜欢数学。

作为数学爱好者,他常常称呼自己”数学带师“(这是个Fake speech),老师和同学对他也非常认可,请他参与了期末考试的命题,为了让所有人都能做对,他出了一个非常简单的题

现在有a,b,c三个正整数,wq想知道是否存在一个正整数d,使得

成立

输入描述

输入一个T( 1≤T≤1e5),表示接下来有T组测试数据,接下来T行。

每行输入三个数a、b、c。(1≤a、b、c≤1e9)

输出描述

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

示例1

输入:

2
1 1 1
3 4 5

输出:

1
-1

原站题解

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

C++14(g++5.4) 解法, 执行用时: 203ms, 内存消耗: 3492K, 提交时间: 2020-07-13 22:07:55

#include <iostream>
using namespace std;
int main()
{
    long long t,a,b,c,d;
    cin>>t;
    while(t--)
    {
        cin>>a>>b>>c;
        d=b*c/a;
            if(a*d==b*c)
            cout<<d<<endl;
        else
        cout<<"-1"<<endl;
    }
    return 0;
}

C++11(clang++ 3.9) 解法, 执行用时: 231ms, 内存消耗: 3468K, 提交时间: 2020-07-19 15:04:21

#include<iostream>
using namespace std;
int main(){
	int T;cin>>T;long long a,b,c,ans;
	for(int i=0;i<T;i++)
	{
		cin>>a>>b>>c;
		ans=b*c/a;
		if(ans*a!=b*c) ans=-1;
		cout<<ans<<endl;
		}
	return 0;
	} 

pypy3(pypy3.6.1) 解法, 执行用时: 463ms, 内存消耗: 29424K, 提交时间: 2020-08-10 10:29:59

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

上一题