看明白题就知道是欧拉函数。。
//============================================================================
// Name : 3090.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <cstdio>
using namespace std;
int a[1010], sum[1010];
int N, n;
void euler(){
for(int i = 2;i <= 1000;i++){
a[i] = 0;
}
a[1] = 1;
for(int i = 2;i <= 1000;i++){
if(!a[i]){
for(int j = i;j <= 1000;j += i){
if(!a[j]){
a[j] = j;
}
a[j] = a[j]/i*(i-1);
}
}
}
}
int main() {
freopen("a.txt", "r", stdin);
euler();
for(int i = 1;i <= 1000;i++){
sum[i] = sum[i-1]+a[i];
}
while(scanf("%d", &N)!=EOF){
for(int T = 1;T <= N;T++){
scanf("%d", &n);
printf("%d %d %d\n",T, n, sum[n]*2+1);
}
}
return 0;
}