#12025. Absolute Value Brute Force / 暴力枚举之绝对值
Absolute Value Brute Force / 暴力枚举之绝对值
Problem J37: Absolute Value Brute Force / 暴力枚举之绝对值
版权信息: · 原题出自 HDU 5778
任务总览
任务名称 | 时间限制 | 内存限制 | 分数 |
---|---|---|---|
暴力枚举之绝对值 | 1 sec | 1024 MB | 15 points |
题目描述
给定一个正整数 ,请你找出一个正整数 ,使得满足以下两个条件:
- ;
- 的绝对值最小;
- 的质因数分解中, 每个质因数都恰好出现两次 (即 ,是某些质数的平方积);
请你输出满足条件的 的最小值。
输入格式
第一行是一个整数 ,表示测试数据组数()。
接下来 行,每行一个整数 ()。
输出格式
输出 行,每行一个整数,表示每组数据的最小绝对差 。
输入输出样例
输入示例
5
1112
4290
8716
9957
9095
输出示例
23
65
67
244
70
题目分析与解法
✅ 条件重述:
我们希望找到一个 满足:
- 它是 多个质数平方的乘积 (例如 );
- 与输入数 的距离 最小。
✅ 特征总结:
- 满足要求的 形如:
- 也可以写为:
即 是一个 完全平方数 ,且其平方根是由若干 不重复质数的乘积 组成。
✅ 解法思路:
- 构造所有不重复质数乘积 ,其中 ;
- 枚举这些质数集合,计算 ;
- 对每个输入 ,找出最接近它的合法 ,返回 最小值。
时间复杂度分析
步骤 | 复杂度 |
---|---|
枚举质数组合 () | , |
每组 二分最优 | |
总复杂度 | 非常高效,支持 |