poj 2773 欧几里得 一个拓展应用
来源:互联网 发布:淘宝怎么看订单号 编辑:程序博客网 时间:2024/05/17 06:13
题目大意就是给出n和k求出第k个与n互素的数这里涉及到了 欧几里得的一个重要知识点:如果(a, b)互质的话,那么(b*t+a, b)肯定互质,其中t为正整数!那么这就是以循环周期的了那么这题就可以利用这个来做了,代码和详解如下:#include <iostream>#include <cstdio>#include <cstring>#include <string>using namespace std;const int maxn=1000005;int a[maxn];int gcd(int a,int b)//递归的欧几里得{ return b==0 ? a : gcd(b,a%b);}int main(){ int i; int m,k; while(scanf("%d%d",&m,&k)==2) { int j=0; for(int i=1; i<=m; i++) { if(gcd(i,m)==1)//这里求出从1 ~ m之间与m互质的数 { a[j++]=i; } } if(k%j!=0)//这里要分开来考虑 { printf("%d\n",k/j*m+a[k%j-1]);//这里k/j等于t,而且这数组的下标都是从0开始的 } else if(k%j==0) { printf("%d\n",(k/j-1)*m+a[j-1]); } } return 0;}
- poj 2773 欧几里得 一个拓展应用
- POJ-----1061拓展欧几里得
- poj 2142 拓展欧几里得算法
- poj 2142 拓展欧几里得 砝码
- poj 2773欧几里得的应用
- [拓展欧几里得] poj 1061 青蛙的约会
- [高斯消元+拓展欧几里得] poj 2065 SETI
- POJ 1061 青蛙的约会【拓展欧几里得】
- 题解: poj 1061 nefu 84(拓展欧几里得)
- POJ - 2115 C Looooops(拓展欧几里得)
- POJ 2115 C Looooops 拓展欧几里得
- POJ 2115 C Looooops(拓展欧几里得)
- Poj 1061 青蛙的约会【拓展欧几里得】
- poj 1061 青蛙的约会 拓展欧几里得
- POJ.1061 青蛙的约会 (拓展欧几里得)
- POJ.2142 The Balance (拓展欧几里得)
- [数论] 拓展欧几里得算法(poj 2115)
- POJ 1061青蛙的约会(拓展欧几里得)
- java集合
- 自动化技术网CNC
- VC之获取计算机网卡mac地址
- 华为与瑞星在云计算虚拟化防病毒领域战略合作
- 软件测试工具比较
- poj 2773 欧几里得 一个拓展应用
- 发送intent前验证
- CSS 背景图拉伸 兼容 FF Chrome IE 等主流浏览器
- __asm__ __volatile__内嵌汇编用法简述
- 数据结构练习题---先序遍历二叉树
- 网站运营的看法
- C++编程 Visitor模式(访问者)
- C语言 复杂指针的申明问题 数组指针 指针数组 函数指针 指针函数
- 关于jvm系统属性