BZOJ 1406 密码箱

题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1406

题意:解方程x^2%n=1(1<=x<n)。

思路:

BZOJ 1406 密码箱

 




set<int> S;
int n;


int main()
{
    RD(n);
    if(n==1)
    {
        puts("None");
        return 0;
    }
    int a,b,i;
    for(a=1;a*a<=n;a++) if(n%a==0)
    {
        b=n/a;
        for(i=1;i<=n;i+=b) if((i+1)%a==0) S.insert(i);
        for(i=b-1;i<=n;i+=b) if((i-1)%a==0) S.insert(i);
    }
    set<int>::iterator it;
    for(it=S.begin();it!=S.end();it++)
    {
        PR(*it);
    }
}

你可能感兴趣的:(ZOJ)