题意
给定数n,问是否存在数a,b,c,使得a^b + a^c + b^c = n
思路
当n是偶数时,取0, n/2, n/2即可满足题意。
当n是奇数时,不存在这样的a,b,c。证明:如果a,b,c奇数性相同,则a^b, a^c, b^c的个位数都是偶数,相加后仍是偶数;如果a,b,c奇偶性不同,不失一般性,不妨设a,b奇偶性相同,a,c奇偶性不同,那么a^b为偶数,a^c, b^c为奇数,它们相加后为偶数。
代码
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n;
void solve() {
scanf("%d", &n);
if (n & 1) {
printf("-1\n");
} else {
printf("%d %d %d\n", 0, n / 2, n / 2);
}
}
int main() {
int t;
scanf("%d", &t);
while (t--) {
solve();
}
}