题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=762

直接给代码好了,容斥原理具体看《组合数学》

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;

vector<int> a;    //存储n所有质因子
                //不爆int情况下,大概最多10个左右
];

void getfac(int x)
{
    ;i*i<=x;i++)
        )
        {
            a.push_back(i);
            )
                x/=i;
        }
    ) a.push_back(x);
}
int cal(int x)    //由容斥原理计算1~x中有多少与n互质的自然数
{
    ,ret=x;
    b[++g]=;
    //由以下的二重for循环可以做到枚举组合,共2^(a.size())个组合
    ;i<a.size();i++)
    {
        int t=g;
        ;j<=g;j++)
            b[++t]=-b[j]*a[i],ret+=x/b[t];
        g=t;
    }
    return ret;
}
int work(int n,int k)    //二分查找
{
    ,r=2e9;        //cal(l)<k,cal(r)>=k
    )        //当r-l=1时,结束循环,此时cal(r)=k
    {
        ;
        if(cal(mid)<k) l=mid;
        else r=mid;
    }
    return r;
}

int main()
{
    int n,k;
    while(cin>>n>>k)
    {
        a.clear();
        getfac(n);
        printf("%d\n",work(n,k));
    }
}

nyoj 762:第k个互质数的更多相关文章

  1. nyoj_762:第k个互质数

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=762 直接给代码好了,容斥原理具体看<组合数学> #include<bi ...

  2. nyoj 678 最小K个数之和

    最小K个数之和 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 输入n个整数,输出其中最小的K个数之和.例如输入4,5,1,1,6,2,7,3,3这9个数字,当k=4 ...

  3. 第k个互质数(二分 + 容斥)

    描述两个数的a,b的gcd为1,即a,b互质,现在给你一个数m,你知道与它互质的第k个数是多少吗?与m互质的数按照升序排列. 输入 输入m ,k (1<=m<=1000000;1<= ...

  4. NYOJ 762

    容斥原理 http://blog.csdn.net/shiren_bod/article/details/5787722

  5. (寻找第K小的数&amp;&amp;寻找第K小的数的和)

    这一篇博客以一些OJ上的题目为载体,讲一下寻找第K小的数的方法 方法一: 先将数据排列好,然后,然后return a[k]或者将前K个数加起来 方法二: 基于高速排序.如,一次高速排序将某一个数放到了 ...

  6. hdu1695:数论+容斥

    题目大意: 求x属于[1,b]和 y属于[1,d]的 gcd(x,y)=k 的方案数 题解: 观察发现 gcd()=k 不好处理,想到将x=x/k,y=y/k 后 gcd(x,y)=1.. 即问题转化 ...

  7. hdu4542 && ZOJ2562(反素数)

    反素数: 对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任意的正整 数,都有,那么称为反素数. 有两个特点: 1.一个反素数的质因子必是从2开始的质数 2.如果,那么必有 最常见的问题如 ...

  8. 牛客练习赛44C

    链接:https://ac.nowcoder.com/acm/contest/634/C来源:牛客网 题目描述 给出一个区间[L,R],求出[L,R]中孪生质数有多少对. 由于这是一个区间筛质数的模板 ...

  9. Hdu1695 GCD 2017-06-27 22:19 30人阅读 评论(0) 收藏

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

随机推荐

  1. php输出控制函数和输出函数生成静态页面

    Output Control 函数详解: flush - 刷新输出缓冲 ob_clean - 清空输出缓冲区 ob_end_clean - 清空缓冲区并关闭输出缓冲 ob_end_flush - 冲刷 ...

  2. Matplotlib系列(四)--plt.bar与plt.barh条形图

    (一)竖条条形图 参数说明 参数 说明 类型 x x坐标 int,float height 条形的高度 int,float width 线条的宽度 0~1,默认是0.8 botton 条形的起始位置 ...

  3. UNITY编辑器模式下static变量的坑

    在unity中写编辑器扩展工具,如在编辑器中加个菜单,点击这个菜单项时执行打包功能. 类如下,其中的静态变量,如果每次进来不清空,则LIST会越来越大,打包函数执行完后系统不会帮我们清空 #if UN ...

  4. spring4.1.8扩展实战之六:注册bean到spring容器(BeanDefinitionRegistryPostProcessor接口)

    本章是<spring4.1.8扩展实战>系列的第六篇,目标是学习如何通过自己写代码的方式,向spring容器中注册bean: 原文地址:https://blog.csdn.net/boli ...

  5. datastudio 里关于with as 的用法。

    datastudio 里sql 语句的写法,加入with as 语法. 这样方便查询,易于维护.以后都这样写. 优点: 1 易于维护,可以复用代码块 2 优化书写逻辑,方便查阅理解. 3  性能方面优 ...

  6. python实现读取配置文件

    实现代码如下: # 读取配置文件,取其值组成列表class ReadTxt: def read_txt(self,path): li_info = [] with open(path) as f: l ...

  7. Windows系统命令整理-Win10

    硬件相关 显卡 显卡升级 - 我的电脑->属性->设备管理器->显示适配器->更新驱动程序 服务 telnet 安装:启用或关闭Windows 功能,勾选上“Telnet客户端 ...

  8. 应用安全 - Web安全 - 文件包含攻防

    LFI - 无限制本地文件包含 通过目录遍历漏洞可以获取到系统中其他文件的内容 常见的敏感信息路径 Windows系统 c:\boot.ini // 查看系统版本 c:\windows\system3 ...

  9. mooc-IDEA 关联Spring&DB --011

    Local history寻找修改轨迹 右击项目->local history->show history 显示修改了哪些东西,可通过对比文件,查看修改点. put lable...类似于 ...

  10. JavaScript如何获得两点之间顺时针旋转的角度

    接上回:如何用javascript中的canvas让图片自己旋转 既然能够制定角度让图片旋转,那么现在要做的是自动获得旋转的角度, 让图片能够随着鼠标的方向旋转,让人物能够面朝鼠标的方向: 源代码: ...