//找第k個和n,m互質的數
//由容斥原理可得
//在[1,x]範圍內且與n不互質的數的個數為:
//對於所有的n的素數因子:和乙個素數因子不互質的個數-兩個素數因子相乘的個數+三個素數因子相乘的個數-.....
//對於x越大,在[1 , x]範圍內的與n,m互質的數越多,所以存在單調性,可以用二分找到剛好有k個數和n,m互質
#include
#include
#include
#include
using namespace std ;
typedef __int64 ll ;
const int maxn = 100010 ;
const int inf = 1e9 ;
mapma ;
ll p[maxn] ;
int len ;
void getprime(ll n)
while(n%i == 0)n/=(ll)i ;
}if(n > 1 && !ma[n])
}ll dfs(int pos , ll n)
ll find(ll l , ll r , ll num )
return l ;
}int main()
return 0;
}
HDU3388 Coprime(二分 容斥)
題意 給你n m n,mn,m,讓你找到第k kk個與n nn和m mm互素的數。思路 範圍比較大,我們可以先找出n nn和m mm的質因子,然後二分答案。每次容斥判定mid midmi d是第幾個與n nn和m mm互質的數字。include include include include inc...
HDU3388 二分 容斥原理
題目 coprime 題意 給三個數m,n,k,0 思路 二分 容斥原理 由於所找的數與m,n互質,那麼這個數不能含有m,n所包含的素因子。但是k很大,不可能乙個乙個生成。於是二分,找到最小 的x,使得小於或等於x的數中滿足條件的 數的個數大於或等於k,則這個最小值即為答案。在判斷小於或等於x的數中...
hdu4135 Co prime 互素統計
題意 統計 l,r 中與m互素的數的個數 解法 1.求字首 1,r 中與m互素的個數 2.求反面 不互素的個數,再將m分解質因子,轉化為整除問題 a,m 1,則m至少有乙個質因子整除a。ans a 1 a2 ak ai 為 1,r 中m的第i個質因子的倍數集合 複雜度 o m logm 與區間大小無...