#include #include #include #include #include #include #include #include #include #include #include #pragma comment(linker,"/STACK:102400000,102400000") using namespace std; unsigned euler(unsigned x){// 就是公式 unsigned i, res=x; for (i = 2; i < (int)sqrt(x * 1.0) + 1; i++){ if(x%i==0) { res = res / i * (i - 1); while (x % i == 0) x /= i; // 保证i一定是素数 } } if (x > 1) res = res / x * (x - 1); return res; } int main(){ int i,j,m,n,T,t; scanf("%d",&T); while(T--){ scanf("%d",&n); printf("%d\n",euler(n+1)); } return 0; }