题目:
大致题意:圆上有偶数n个点。每m个点连起来。最后能够把全部点串联起来就合法。问有多少个m能够完毕串联,串联后形状同样的算反复
n <2^31
思路:能够写个暴力程序,能够发现仅仅要m与n互质,就能够完毕串联,所以用欧拉函数解决
证明:
设cnt为当第一次达到原点时连接了几个点。
所以有 m*cnt = k*n
得到 cnt = k*n/m
显然要第一次达到原点就是k逐渐增大使k*n/m变为整数的第一个k值, 且由题意必须使cnt = n , 所以m与n互质就可以
所以m的种数就是 phi(n)
//#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include