题意:求光在圆内反射n次后第一次返回原点的方案数
如果k和n-1可约分,则表明是循环多次反射方案才返回原点。
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int gcd(int x,int y)
{
if(x%y != 0)
return gcd(y,x%y);
return y;
}
int main()
{
int T,n;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
int ans = 0;
for(int i = 1;i <= n;i++)
{
if(gcd(n+1,i) == 1)
ans ++;
}
printf("%d\n",ans);
}
return 0;
}