题意:求光在圆内反射n次后第一次返回原点的方案数
如果k和n-1可约分,则表明是循环多次反射方案才返回原点。
#include#include #include 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;}