zoukankan      html  css  js  c++  java
  • 九九归一

    九九归一


    稍作尝试可得三类情况, 分类讨论:
    1. 根本就没有循环/循环节大于phi(n), 当且仅当a, n不互质
    2. 循环节等于phi(n)
    3. 循环节为phi(n)的因数

    2, 3类情况需要通过运算来判别.
    通过快速幂来加速运算(又是二进制拆分思想…)
    代码不是我的.

    #include<cstdio>
    #include<cstring>
    
    using namespace std;
    const int N=100100;
    int p[N],c[N],ans,n,m,k,x,tot,flag;
    
    long long pow(long long x,int len)
    {
        if (len==1) return x;
        long long t=pow(x,len/2);
        if (len%2)
            return t*t%k*(long long)x%k; else
            return t*t%k;
    }
    
    int main()
    {
        scanf("%d%d",&n,&m);
        k=n;ans=n;
        for (int i=2;i*i<=n;i++)
        if (n%i==0)
        {
            while (n%i==0) n/=i;
            ans=ans/i*(i-1);
        }
        if (n!=1) ans=ans/n*(n-1);
        for (int i=2;i*i<=ans;i++)
        if (ans%i==0)
        {
            p[++tot]=i;
            if (ans/i!=i)
                p[++tot]=ans/i;
        }
        while (m--)
        {
            scanf("%d",&x);
            flag=1;
            for (int i=1;i<=tot;i++)
            if (pow(x,p[i])==1)
            {
                flag=0;
                break;
            }
            if (flag && pow(x,ans)==1)
                printf("1"); else
                printf("0");
        }
        printf("
    ");
    }
    
  • 相关阅读:
    Material和SharedMaterial的区别
    unity 字典序列化的问题
    序列化到本地
    数据分离
    太久没更 重回博客园
    Unity下替换模型后 之前生成的Prefab中的原模型脚本不会丢失
    Enum.Parse
    Assert断言机制
    20170612
    Unity Cookie
  • 原文地址:https://www.cnblogs.com/ZeonfaiHo/p/6402852.html
Copyright © 2011-2022 走看看