AT5404 [ABC166D] I hate Factorization 题解

题意简述


题目给定一个整数 XX,让你求出两个整数 AABB,使 AABB 满足 A5B5=XA^5 - B^5 = X

解题思路


枚举可以解决这道题。

题目要求 A2B2=XA^2 - B^2 = X,数据范围有这样写:1X1091 \leqslant X \leqslant 10^9

通过计算可得,因为 12051195>109120^5-119^5>10^9,所以AA 的取值范围是 120A120-120 \leqslant A \leqslant 120BB 的取值范围为 120<B<120-120 < B < 120

两重循环枚举 AABB 的值即可。

注意:一定要开 long long

代码实现


#include<bits/stdc++.h>
using namespace std;
long long x;
long long doit(long long n) { return n*n*n*n*n;}
int main() {
	scanf("%lld",&x);
	for(int i=-120;i<=120;i++) {
		for(int j=-120;j<=120;j++) {
			if(doit(i)-doit(j)==x) {
				printf("%d %d\n",i,j);
				return 0;
			}
		}
	}
	return 0;
}
//code by TheCedar