编写一个程序,判断一个任给的正整数a (1<a<=100),是否为完美立方数。 若是,输出满足完美平方式的所有组合(其中b,c,d 大于 1, 小于等于100,且b<=c<=d) 若不是,输出 -1
时间: 2023-05-26 18:07:37 浏览: 66
完美立方数是指一个正整数,它的立方可以表示为三个正整数的立方和,即a = b^3 + c^3 + d^3。我们可以使用三重循环枚举b、c、d来判断是否存在符合要求的解。
代码如下:
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
bool flag = false;
for (int b = 2; b <= 100 && b * b * b <= a; b++) {
for (int c = b; c <= 100 && b * b * b + c * c * c <= a; c++) {
for (int d = c; d <= 100 && b * b * b + c * c * c + d * d * d <= a; d++) {
if (b * b * b + c * c * c + d * d * d == a) {
flag = true;
cout << b << " " << c << " " << d << endl;
}
}
}
}
if (!flag) {
cout << "-1" << endl;
}
return 0;
}