• 洛谷题解 P1592 【互质】


    原题传送门

    题目描述

    输入两个正整数n和k,求与n互质的第k个正整数。

    输入格式

    仅一行,为两个正整数n(≤106)和k(≤108)。

    输出格式

    一个正整数,表示与n互质的第k个正整数。

    输入输出样例

    输入 #1

    10 5

    输出 #1

    11
    --------------------------------------------------以下为题解部分---------------------------------------

    分析:

    思路:

    这个题通读一遍题以后,你会发觉:这不就是一道纯数学题吗?

    既然看懂了题意,那就很简单了。

    补充一点简单的数论知识:

    两个数的最大公因数是1是,此两数互质。(dalao勿喷
    好了,不多说,上代码

    代码:

    #include<cstdio>
    using namespace std;
    int n,k,q,p[1000010];
    inline int gcd(int a,int b){	//计算a,b的最大公因数 
    	return b==0?a:gcd(b,a%b);
    }
    int main(){
        scanf("%d %d",&n,&k);
        for(int i=1;i<=n;i++){	//枚举 
            if(gcd(n,i)==1)		//众所周知,当两个数的最大公因数为1时,此两数互质。 
                p[++q]=i;		//记录结果 
        }
        printf("%d",(k-1)/q*n+p[k%q]);	//输出n互质的第k个正整数。 
        return 0;
    }
    
    本文欢迎转载,转载时请注明本文链接
  • 相关阅读:
    使用HttpURLConnection
    使用HttpURLConnection
    HTTP基本工作原理
    HTTP基本工作原理
    【杭电】[2022]海选女主角
    【杭电】[2022]海选女主角
    【吐槽】这是第200篇博文
    【吐槽】这是第200篇博文
    【NYOJ】[8]一种排序
    【NYOJ】[8]一种排序
  • 原文地址:https://www.cnblogs.com/-pwl/p/12287739.html
Copyright © 2020-2023  润新知