HDU 6298(数学)
2024-09-06 10:11:53
题意是给出一个数,找出这个数的三个因子且这三个因子的和等于这个数,输出满足条件的乘积最大的一组因子的乘积,如果不存在这样的因子,就输出 -1.
第一次 wa 了,因为把题目中的 x | n 当做了位或操作(其实这样那句话读不通...),其实是整除的意思。
分析:因为 n = n * 1
= n * (1/2 + 1/3 + 1/6) = n * (1/3 + 1/3 + 1/3) = n * (1/2 + 1/4 + 1/4)
所以若一个数可以被 2、3 整除
或可以被 3 整除
或可以被 4 整除
则所要求的一组因子是存在的。
而 2 和 3 这种情况包含在第二种情况中,那么只要这个数可以被 3 或 4 整除,所要求的一组因子就是存在的。
又因为第二种情况下三个因子的乘积为 1/27 * (n^3),第三种情况下三个因子的乘积为 1/32 * (n^3),第二种情况的结果大于第三种情况,则要优先考虑第二种情况。
代码如下:
#include <bits/stdc++.h>
using namespace std;
long long n,ans;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
ans = -;
if(n%==)
{
n = n/;
ans = n*n*n;
}
else if(n%==)
{
ans = n/*n/*n/;
}
printf("%lld\n",ans);
}
return ;
}
感谢这篇博客的作者:https://www.cnblogs.com/ZERO-/p/9364600.html
最新文章
- Oracle用户被锁原因及办法
- Angular2.0快速开始
- U-BOOT-Linux启动指令bootm分析
- swiftlint升级
- 使用yum安装CDH Hadoop集群
- jquery放大镜插件与样式
- SecureCRT使用教程
- Property &;#39;sqlSessionFactory&;#39; or &;#39;sqlSessionTemplate&;#39; are required
- 防盗链[referer]
- 【国家集训队2010】小Z的袜子[莫队算法]
- EJB通过注解方式注入并使用其他EJB或者服务、配置JBoss数据源
- C++之默认参数
- Sqoop: ERROR manager.SqlManager: Error reading from database: java.sql.SQLException:
- 【Codeforces Round 1137】Codeforces #545 (Div. 1)
- 保持APP后台NSTimer运行
- openresty router &;&; template 试用
- ORA-16038: log 3 sequence# 103 cannot be archived
- android.telephony.SmsManager.sendMultipartTextMessage
- Spring Boot 实用MyBatis做数据库操作
- MathExamLv2——周世元211606348,许燕婷211606338