2773专题

poj 2773 Happy 2006(数论:欧拉函数)

给出n, k,输出与n互质的第k个正整数 这个题归根结底用到了一个性质: gcd(a, b) == gcd(a, b+a*t) (t=0,1,2...) 所以一种方法就是找到小于n且与n互质的所有数prime[]以及其个数cnt 如果k<tot,则直接输出 否则根据上式可知存在循环节,相邻两个循环节之间相差:k/cnt*m 所以结果应该为:k/cnt*m+prime[k%(cnt-1

POJ 2773 Happy 2006 题解与分析

Happy 2006 Time Limit: 3000MSMemory Limit: 65536KTotal Submissions: 8447Accepted: 2777 Description 两个正整数如果称为互质,那么应满足这两数的最大公约数(GCD)为1。例如,1,3,5,7,9……都与2006互质。你现在的工作很容易:对于给定的整数m,找到第k个与M互质的元素,这些