POJ1284 Primitive Roots

来源:互联网 发布:进入淘宝 编辑:程序博客网 时间:2024/05/21 06:58

  题目链接:http://poj.org/problem?id=1284

  原根,定义题面有

  暴力枚举肯定会TLE

  找规律,用欧拉函数,答案为phi(n-1)

  附:原根的百度百科

         一篇关于原根看起来很厉害的博客 来自ACdreamer的博客,鸣谢博主!

  贴代码

#include<cstdio>#include<cstring>using namespace std;int main(){//freopen("1284.in","r",stdin);//freopen("1284.out","w",stdout);int n;while (scanf("%d",&n)!=EOF){n--;int ans=n;for (int i=2;i*i<=n;i++){if (n%i==0){ans=ans/i*(i-1);while (n%i==0)n/=i;}}if (n>1)ans=ans/n*(n-1);printf("%d\n",ans);}return 0;}
【写的有漏洞的,欢迎路过大神吐槽】

  2017/07/07 21:55:40

  Ending.

原创粉丝点击