代码:
#include <bits/stdc++.h> using namespace std; const int N=1005; int prime[N],cnt=0,f[N],sum[N]; bool st[N]; void init() { f[1]=1; for(int i=2;i<=1000;i++) { if(!st[i]) {f[i]=i-1;prime[cnt++]=i;} for(int j=0;prime[j]*i<=1000;j++) { st[i*prime[j]]=true; if(i%prime[j]==0) { f[i*prime[j]]=f[i]*prime[j]; break; } else { f[i*prime[j]]=f[i]*(prime[j]-1); } } } } int main() { init(); for(int i=1;i<=1000;i++) sum[i]=sum[i-1]+f[i]; int T,n; scanf("%d",&T); for(int i=1;i<=T;i++) { scanf("%d",&n); printf("%d %d %d\n",i,n,sum[n]*2+1); } return 0; }