HDU 학교 여섯 번째 1008 (hdu6641) TDL 폭력보다 더

질문의 의미 :

가장 작은 N을 찾아 F (N, M)이 K = 주어진 n보다 크고, m 번째 소수 N (N F (m) -N) 배타적 n 및 m을 설정

해결 방법 :

주어진 m 들어, k 번째 주위 N 정당한 분배 매우 치밀하므로 강력한 K 이웃 됨.

사용법 #include <iostream>
 #DEFINE LL 긴 긴
 사용  스페이스 성병; 
LL의 GCD (LL A, LL의 b) { 
    복귀 ㄴ == 0 A : GCD (B, A의 % B); 
} 
BOOL (LL의 N, LL k를 해결 의 INT {m)를
     // 找到N后面的个互质m第
    LL 레지스터 I;
     (I = N + 1 ; I ++ ) {
         경우 (GCD (I, N) == 1 ) M-- ;
        경우 (m을 == 0 ) 휴식 ; 
    } 
    경우 (((==) ^ N)에서 {K)
 //         의 printf ( "%의 LLD"I); 
        반환 1 ; 
    } 
    다른  반환  0 ; 
} 
INT 의 main () {
     INT의 t; 
    scanf와 ( " %의 D " , t);
    반면 (t-- ) { 
        LL의 K; 
        INT의 m; 
        scanf와 ( " %의 LLD % d에 " , & k, m);
        대해 (LL 레지스터 I = 최대 (1ll, K- 3000 ) 나 <= K + 3000 ; I ++ ) {
             경우 (해결 (I, K, m)) { 
                의 printf ( " % LLD \ 없음 " , I);
                고토 ; 
            } 
        } 
        의 printf ( " -1 가능 \ n " ); 
        에이:; 
    } 
}

 

추천

출처www.cnblogs.com/isakovsky/p/11321685.html