题意:
思路:
找出规律, 当k较大的时候, 是循环的。只需要求出前几个数就可以了。
首先打表,求出1e7的miu函数, 必须要用线性筛,不然超时。
#pragma warning(disable:4996)
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<map>
#include<cmath>
#include<vector>
#include<queue>
#include<cstring>
#include<string>
#include<bitset>
using namespace std;
typedef long long ll;
const ll maxn = 1e6 + 10;
const int inf = 1e8 + 10;
ll miu[maxn], prime[maxn], tot;
bool vis[maxn];
void get_miu() {//求miu的模板
miu[1] = 1;
for (int i = 2; i <= maxn; i++)
{
if (!vis[i])
{
prime[++tot] = i;
miu[i] = -1;