源文件:
:cat main.cc
#include <cstdio>
#include <cmath>
using namespace std;
#define MAX (1000000)
#define LEN (MAX+10)
#define IF(condition, something) if (a) {\
something;\
}
#define FOR(n) for(int i=0;i<n;++i)
#define FORE(n) for(int i=1;i<=n;++i)
#define Fore(a,b) for(int i=a;i<=b;++i)
int n, v, ans, tmp;
int a[LEN];
int b[LEN];
int head[LEN];
int nxt[LEN];
__attribute__((constructor))
void init()
{
int j, cnt, tmp, sum = 0;
FORE(MAX) a[i] = i;
Fore(2,MAX)
{
j = i;
cnt = 1;
while(j += i, cnt = !cnt, j <= MAX)
{
while(a[j] % i == 0) a[j] /=i;
IF(cnt, a[j] *