2773 Happy 2006//오라 함수의 응용

Happy 2006
Time Limit: 3000MS
 
Memory Limit: 65536K
Total Submissions: 5258
 
Accepted: 1576
Description
Two positive integers are said to be relatively prime to each other if the Great Common Divisor (GCD) is 1. For instance, 1, 3, 5, 7, 9...are all relatively prime to 2006.
Now your job is easy: for the given integer m, find the K-th element which is relatively prime to m when these elements are sorted in ascending order.
Input
The input contains multiple test cases. For each test case, it contains two integers m (1 <= m <= 1000000), K (1 <= K <= 100000000).
Output
Output the K-th element in a single line.
Sample Input
2006 1
2006 2
2006 3

Sample Output
1
3
5

Source
POJ Monthly--2006.03.26,static
 
 
/*//이 문제는 단락을 나누어 풀 수 있다. m와 m의 상호작용 수량은 m의 오라개이고,/(제1반응은 이전에 사용했던 oula 함수를 조정했다.) 똑같이 m+1에서 2m 사이를 내놓을 수 있고,/n*m+1에서 (n+1)*m 사이와 m의 상호작용 수량도 같다. 만약에 k와 m의 상호작용,//면 k+n*m와 m의 상호작용, 왜냐하면 (n*m+K)%m=k%m,,따라서 이 문제는 먼저 m와 m 상호소의 수res[i]와 총 개수를res[0],/만약a[0]#include#includeconst N=1000010;bool is_p[N];//판단 소수 int prime[N];//인벤토리 int p[N];int res[N]; int n,k; void getpri() { memset(is_p,true,sizeof(is_p)); int num=0; prime[++num]=2; for(int i=3;i*i<=N;i+=2) if(is_p[i]) { for(int j=i*i;j1) p[++num]=n; p[0]=num; } voideular()///햇볕 상호질수 {getp(n);memset(is_p,true,sizeof(is_p));for(int i=1;i<=p[0];i++){for(int j=p[i];j

좋은 웹페이지 즐겨찾기