题目
我们将数x的弱点定义为小于x且除数比x多的正整数的数量,因此数字越弱,它的整体弱点就越大,对于给定的整数n,需要回答两个问题:
1. [1,n]范围内最弱数字的弱点是什么?
2. [1,n]范围内有多少数字有这个弱点?
输入
9
输出
[2.2]
解释
d(1) = 1 weaknesses(1) = 0
d(2) = 2 weaknesses(2) = 0
d(3) = 2 weaknesses(3) = 0
d(4) = 3 weaknesses(4) = 0
d(5) = 2 weaknesses(5) = 1
d(6) = 4 weaknesses(6) = 0
d(7) = 2 weaknesses(7) = 2
d(8) = 4 weaknesses(8) = 0
d(9) = 3 weaknesses(9) = 2
d代表除数数量,weaknesses表示比当前数字小,除数数量大于当前数字的数量
分析
实际上就是求每个数的除数,以及对应的弱点数量,然后求最大的弱点数和个数就是输出
代码
#include <iostream>
#include <vector>
#include <algorithm>
#include <unordered_map>
using namespace std;
// 计算一个数字的除数数量
int cou