POJ 2773 欧拉函数

简介:

题意:让求从1开始第k个与m互素的数。

求最大公约数的第一步是用大数对小数取余。gcd(a,b)==gcd(a%b,b),进一步推出gcd(a,b)==gcd(a+b, b)。也就是说,当求出了1~m间与m互质的数之后,把这些数加上m就可以得到m~2m间的与m互质的数。而且m~2m间不会有某个与m互质的数被漏掉。因为如果m<=a<=2m,且gcd(a, m)==1,那么gcd(a - m, m)必然等于1。也就是必然有个在1~m间的数a-m,可以通过加m的方式得到a。所以与m互质的数是有周期性的。我们只需要求出第一个周期即可。

#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
long long phi(long long n)
{
    long long rea=n;
    for(int i=2; i*i<=n; i++)
        if(n%i==0)
        {
            rea=rea-rea/i;
            do
                n/=i;
            while(n%i==0);
        }
    if(n>1)
        rea=rea-rea/n;
    return rea;
}
long long gcd(long long a,long long b)
{
    if(!b)
        return a;
    return gcd(b,a%b);
}
int main()
{
    long long m,k,ans;
    while(~scanf("%I64d%I64d",&m,&k))
    {
        if(m==1)
        {
            printf("%I64d\n",k);
            continue;
        }
        int b=phi(m),now=k/b;
        if(k%b==0)now--;
        for(long long i=now*m,num=0; i<(now+1)*m; i++)
        {
            if(gcd(i,m)==1)
                num++;
            if(num+now*b==k)
            {
                ans=i;
                break;
            }
        }
        printf("%I64d\n",ans);
    }
    return 0;
}


目录
相关文章
|
Java 机器学习/深度学习
UESTC 30 &&HDU 2544最短路【Floyd求解裸题】
最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 65817    Accepted Submission(s): 28794 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。
1150 0
|
人工智能 算法
洛谷 P2312 解方程
题目描述 已知多项式方程: $a_0+a_1x+a_2x^2+..+a_nx^n=0$//用LaTex好看多了 求这个方程在[1, m ] 内的整数解(n 和m 均为正整数) 输入输出格式 输入格式:   输入文件名为equation .in。
612 0
hdu 1695 GCD【欧拉函数+容斥原理】
GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6253    Accepted Submission(s): 2...
1039 0
|
机器学习/深度学习 算法
数论 - 欧拉函数模板题 --- poj 2407 : Relatives
Relatives Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11372   Accepted: 5544 Description Given n, a positive in...
1004 0
|
机器学习/深度学习 BI