当前位置: 首页 > news >正文

UVa 386 Perfect Cubes

题目描述

费马大定理指出:对于n>2n > 2n>2,不存在大于111的整数a,b,ca, b, ca,b,c满足an=bn+cna^n = b^n + c^nan=bn+cn。然而,对于立方的情况,我们可以找到满足a3=b3+c3+d3a^3 = b^3 + c^3 + d^3a3=b3+c3+d3的整数解(例如123=63+83+10312^3 = 6^3 + 8^3 + 10^3123=63+83+103)。

本题要求:找出所有满足a3=b3+c3+d3a^3 = b^3 + c^3 + d^3a3=b3+c3+d3a≤200a \leq 200a200的整数解,其中b,c,d≥2b, c, d \geq 2b,c,d2

输出格式

aaa的非递减顺序输出,每行一个解,格式为Cube = a, Triple = (b,c,d)。对于相同的aaa,按bbb的非递减顺序输出。bbbcccddd也应满足b≤c≤db \leq c \leq dbcd

样例输出(部分)

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) ...

题目分析

问题的本质

这是一个整数方程求解问题。需要找出所有满足a3=b3+c3+d3a^3 = b^3 + c^3 + d^3a3=b3+c3+d3的四元组(a,b,c,d)(a, b, c, d)(a,b,c,d),其中2≤b≤c≤d<a≤2002 \leq b \leq c \leq d < a \leq 2002bcd<a200

算法思路

直接枚举b,c,db, c, db,c,d的三重循环,计算b3+c3+d3b^3 + c^3 + d^3b3+c3+d3,然后检查该值是否为某个整数的立方,且该整数在222200200200范围内,且大于ddd

枚举范围

  • bbb222200200200
  • cccbbb200200200
  • dddccc200200200

但注意:aaa必须大于ddd,因此ddd最大只需到199199199

立方根计算

使用cbrt函数计算立方根,由于浮点精度问题,需检查附近整数。


参考代码

// Perfect Cubes// UVa ID: 386// Verdict: Accepted// Submission Date: 2016-06-26// UVa Run Time: 0.040s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;structcube{inta,b,c,d;booloperator<(cube x)const{if(a!=x.a)returna<x.a;if(b!=x.b)returnb<x.b;if(c!=x.c)returnc<x.c;returnd<x.d;}};intmain(intargc,char*argv[]){vector<cube>cubes;// 枚举 b, c, dfor(intb=2;b<=200;b++)for(intc=b;c<=200;c++)for(intd=c;d<=200;d++){intsum=b*b*b+c*c*c+d*d*d;// 计算立方根(考虑浮点误差)inta=(int)(cbrt(sum)+0.5);// 检查是否满足方程且 a 大于 d 且 a 在范围内if(a*a*a==sum&&a<=200&&a>d)cubes.push_back({a,b,c,d});}// 按 a, b, c, d 排序sort(cubes.begin(),cubes.end());// 输出结果for(autogroup:cubes){cout<<"Cube = "<<group.a<<", Triple = (";cout<<group.b<<","<<group.c<<","<<group.d<<")"<<endl;}return0;}
http://www.jsqmd.com/news/948076/

相关文章:

  • 编写程序,捕捉工位久坐间断时长,自动计算每日久坐峰值,定时生成起身活动提醒指令。
  • 让登录更聪明:利用快马AI辅助设计云开App登录入口的智能交互体验
  • QMCDecode:3步轻松解密QQ音乐加密音频的终极macOS工具指南
  • 面试官最爱问的异步FIFO深度计算题,我用一个传感器数据采集的案例给你讲透
  • 船舶Z形操纵仿真MATLAB工具包:支持集装箱船、油轮等多船型及风浪耦合工况
  • CANN/ops-blas批量矩阵向量乘法算子实现
  • 别再手动画阻焊了!用Altium Designer这个隐藏技巧,5分钟搞定大电流开窗
  • Windows右键菜单终极清理指南:3步告别杂乱,重获清爽体验
  • IT管理员必备:用Office部署工具批量静默安装Office 365,并自定义组件(排除Access/Publisher等)
  • PUBG罗技鼠标宏配置实战指南:从零到精通的压枪三部曲
  • 实战演练,基于快马AI构建一个技能匹配与团队协作平台
  • Ableton Live 12.4.5 扩展程序公测:突破预期,无规则限制打造专属音乐工具!
  • MATLAB实操包:毫米波雷达多普勒测速+CFAR弱目标检测+高分辨测距全流程代码与结果图
  • 从‘超级保护’到‘轻松绕过’:手把手教你分析并破解Key文件验证机制
  • Rucaparib卢卡帕利治疗卵巢癌,恶心乏力常见,严重肝损患者禁用
  • 手把手教你复现BUUCTF Easy Notes:从Session伪造到PHP反序列化拿Flag
  • 基于CNN的异常流量监测系统的设计与实现
  • 5分钟快速上手:基于多智能体LLM的智能投资分析系统完整指南
  • 机器视觉:掩膜编辑
  • 阿里技术大佬都在看的《阿里巴巴开发手册合集》,Java工程师必收!
  • 终极指南:如何快速配置ViGEmBus虚拟手柄驱动实现完美游戏体验
  • 智能网联汽车竞赛代码实战包:轨迹跟踪、自动泊车、AEB与车道保持四大功能源码+可视化示例
  • 从SAML到OIDC:一次企业身份认证架构的‘现代化’升级踩坑实录
  • MATLAB环境下基于留一法的SVM二分类完整实现:含数据、代码、可视化与评估报告
  • 51单片机一主两从串口通信实操包:Proteus仿真+分角色C源码+地址识别逻辑
  • 如何快速上手GPT2_PMC-openmind:5分钟医学AI问答实战教程
  • KEIL中cmsis_armcc.h报错别慌!可能是语法高亮在‘假报警’
  • AutoLabs:多智能体系统在化学实验自动化中的应用
  • 编写程序,输入办公室空调温度,个人体感,分析温湿度对呼吸道,关节的影响并评级。
  • 炉石传说终极优化指南:如何用HsMod插件提升你的游戏体验