容易发现春测 T2 中,k 越大程序跑得越快。
所以对于下面的代码,它的时间复杂度应该是什么:
#include <cmath>
#include <iostream>
#include <vector>
int main()
{
int64_t n;
int k;
std::cin >> n >> k;
std::vector<int> f(101);
for (int i = k; i <= 100; i++) f[i] = std::pow((long double)n, (long double)1 / i) - 1;
for (int i = 100; i >= k; i--) {
for (int j = i * 2; j <= 100; j += i) {
f[i] -= f[j];
}
}
int ans = 1;
for (int i = k; i <= 100; i++) ans += f[i];
std::cout << ans << std::endl;
}