小y的质数(转化,容斥)
发布日期:2021-06-30 10:27:26 浏览次数:2 分类:技术文章

本文共 727 字,大约阅读时间需要 2 分钟。

所有用到的数在 [ L , R ] [L,R] [L,R]范围内的前提下

求出有多少 y y y满足 g c d ( y − k , y + k ) gcd(y-k,y+k) gcd(yk,y+k)


看上去非常不好做,实际上可以转化一下

g c d ( y , y + 2 k ) = = 1 gcd(y,y+2k)==1 gcd(y,y+2k)==1的数目

当然此时 L < = y < = R − 2 k L<=y<=R-2k L<=y<=R2k

就是求 g c d ( y , 2 k ) = = 1 gcd(y,2k)==1 gcd(y,2k)==1的数量

似乎仍然不是很好求,但是,但是可以容斥!!!

分解 2 k 2k 2k的质因子,枚举相同的质因子是哪些,根据质因子奇偶个数来判断是加还是减

注意特判 R − 2 k < L R-2k<L R2k<L直接输出零

L = = 0 L==0 L==0时也需要判断,因为 L − 1 L-1 L1 − 1 -1 1,会影响答案

#include 
using namespace std;#define int long longint L,R,k,my[100],ans;void fz(int x){
for(int i=2;i*i<=k;i++) {
if( x%i==0 ) my[++my[0]] = i; while( x%i==0 ) x/=i; } if( x!=1 ) my[++my[0]] = x;}signed main(){
cin >> L >> R >> k; k*=2; R-=k; fz(k); if( R

转载地址:https://issue-is-vegetable.blog.csdn.net/article/details/112808849 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:华华送奕奕小礼物(二分)
下一篇:Subset(枚举子集+高妙的分治)

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月23日 21时56分29秒