• P1592 互质


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

    $n≤10^6,k≤10^8$

    可以枚举出互质的数,居然发现,有循环节。。。。

    比如10

    与其互质的1  3  7  9  11  13  17  19  21  23  27  29  31  33  37  39

    卧槽循环节!!!!

    循环节等于4,每个循环节的差=10(n)

    因此。。。。。。

    先处理1-n与n互质的

    然后找到k所在循环节就行了

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<cctype>
    #include<algorithm>
    using namespace std;
    #define int long long
    #define olinr return
    #define _ 0
    #define love_nmr 0
    #define DB double
    int n;
    int k;
    int num;
    int a[1005000];
    inline int read()
    {
        int x=0,f=1;
        char ch=getchar();
        while(!isdigit(ch))
        {
            if(ch=='-')
                f=-f;
            ch=getchar();
        }
        while(isdigit(ch))
        {
            x=(x<<1)+(x<<3)+(ch^48);
            ch=getchar();
        }
        return x*f;
    }
    inline void put(int x)
    {
        if(x<0)
        {
            x=-x;
            putchar('-');
        }
        if(x>9)
            put(x/10);
        putchar(x%10+'0');
    }
    signed main()
    {
        n=read();
        k=read();
        for(int i=1;i<n;i++)
            if(__gcd(i,n)==1) 
                a[++num]=i;
        put((k-1)/num*n+a[(k-1)%num+1]);   //k-1/num:k所在循环节之前的循环节的个数,防止为0,因此-1再+1
        olinr ~~(0^_^0)+love_nmr;
    }
  • 相关阅读:
    一个泛型的单例模式
    一个将Object转化为CSV文件的类
    WSDL.EXE Error: Not enough storage is avaliable to process the command.
    一个Linq Group By 和Sum的范例
    Random Cube Algorithm
    AccessImport demo
    .net controls of FileUpload
    asp.net AJAX
    Deploy iis7.5
    C# Fibonacci Sequence
  • 原文地址:https://www.cnblogs.com/olinr/p/9570863.html
Copyright © 2020-2023  润新知