题意:求光在圆内反射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 ",ans); } return 0; }