zoukankan      html  css  js  c++  java
  • 洛谷题解 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;
    }
    
    本文欢迎转载,转载时请注明本文链接
  • 相关阅读:
    Mach-O 加载命令(Load commands)
    Mach-O文件介绍之loadcommand
    趣探 Mach-O:加载过程
    Forking and Executing the Process
    XNU加载Mach-O和dyld
    OSX内核加载mach-o流程
    App Launch Sequence on iOS
    操作系统 = 内核 + 服务
    OS X kernel architecture
    OSX架构概述
  • 原文地址:https://www.cnblogs.com/-pwl/p/12287739.html
Copyright © 2011-2022 走看看