问题 E: 完美立方

题目描述

费马大定理断言: 当整数n>2时,关 于 a,b,c 的方程 a*n =b*n+c*n 没有正整数解。该定理被提出后, 历经三百多年, 经历多人猜想辩证, 最终在1995 年被英国数学家安德鲁·怀尔斯证明。当然, 可以找到大于1的 4 个整数满足完美立方等式: a3 =b3+c3+d3 (例如123 =63+83+103)。 编写一个程序, 对于任意给定的正整数 N(N≤ 100) 寻 找所有的四元组 (a,b,c,d) 满足 a^3 =b^3 +c^3 + d^3  , 其中 1<a,b,c,d ≤N

输入

正整数N(N≤100)

输出

按照a的值从小到大, 每行输出一个完美立方等式 ,其中 b,c,d按照非降序排列输出。若两个完美立方等式中 a 的值相同, 则b 值小的先输出; 在 b值相等的情况下, c 值小的先输出; 在b,c都 相等的情况下, d 值小的先输出。

输入输出样例

样例输入 #1

24

样例输出 #1

Cube = 6, Triple = (3, 4, 5)
Cube = 12, Triple = (6, 8, 10)
Cube = 18, Triple = (2, 12, 16)
Cube = 18, Triple = (9, 12, 15)
Cube = 19, Triple = (3, 10, 18)
Cube = 20, Triple = (7, 14, 17)
Cube = 24, Triple = (12, 16, 20)

解答:

#include<stdio.h>
int main() {
	int i, n, a, b, c, d;
	scanf("%d", &n);
	for (a = 2; a <= n; a++)
	{
		for (b = 2; b <= a - 1; b++) 
		{
			for (c = b; c <= a - 1; c++)
			{
				for (d = c; d <= a - 1; d++) 
				{
					if (a * a * a == b * b * b + c * c * c + d * d * d) 
					{
						printf("Cube = %d, Triple = (%d, %d, %d)\n", a, b, c, d);
					}
				}
			}
		}
	}
	return 0;
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值