D. Lucky Chains

news2024/12/25 12:50:38

传送门

题意:给你两个数x,y让你求满足x+k,y+k并且GCD(x+k,y+k)!=1的最小值。

思路:要求满足x+k,y+k并且GCD(x+k,y+k)!=1的最小值,那么就相等于存在(x+k)%d=(y+k)%d

变化一下就等于(x-y)%d=0,那么就是找x-y的约数,然后这个约数可能是质数,也可能是非质数。在此我们假设这个d是非质数,可以由a*b构成,那么结果是

a*b-(m%(a*b))等价于a*b-(m-m/(a*b)*(a*b))=a*b-m+m/(a*b)*(a*b),我们可以发现如果a*b换成a或者换成b,这里都换成b  a*b->b会减小 a*b-b,m/(a*b)*(a*b)变成m/b * b

前半部分的值是小于等于m的(a*b)的倍数的最大值

后半部分的值是小于等于m的b的倍数的最大值

那么这两个的差值一定小于等于(a*b-b)的(如果a3 b2 a*b是6   ,那么无论m是多少满足m是2的倍数的同时相差最多也是6-2=4),那么对于其他的情况超过的值也不会超过a*b-b,

那么对于a*b换成b的结果一定是减小的。所以我们可以直接求所有质数就可以了。

因为数据范围是1e7,可以先用欧拉筛把1e7的素数全部筛出来,然后定义一个数组把质数存起来,之后用试除法直接暴力ac!


#include<cstdio>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <math.h>
#include<vector>
#include<queue>
#include<map>
#define sc_int(x) scanf("%d", &x)
#define sc_ll(x) scanf("%lld", &x)
#define pr_ll(x) printf("%lld", x)
#define pr_ll_n(x) printf("%lld\n", x)
#define pr_int_n(x) printf("%d\n", x)
#define ll long long 
using namespace std;

const int N=11000000+100;
int n ,m,h;
int s[N];
int cnt[N];
int tt=0;
bool st[N];

void init()
{
	for(int i =2;i<=11000000;i++)
	{

		if(!st[i]){
			cnt[++tt]=i;
			s[i]=i;
		}
		for(int j =1;cnt[j]<=11000000/i;j++)
		{
			st[cnt[j]*i]=1;
			s[cnt[j]*i]=cnt[j];
			if(i%cnt[j]==0)break;
		}//如何快速的找出一个数的不
	}

}

int main()
{
		init();
		//cout<<tt<<endl;
	int t;
	sc_int(t);

	// cout<<tt<<endl;
	while(t--)
	{
		sc_int(n),sc_int(m);
		int x=abs(n-m);
		if(x==1)
		{
		printf("-1\n");
			continue;
		}
		if(__gcd(n,m)!=1){
		printf("0\n");
			continue;
		}
		

		int i=1;
		int res=1e9;

		for(int i =1;cnt[i]<=x/cnt[i];i++)
		{
			if(x%cnt[i]==0)
			{
				res=min(res,cnt[i]-(m%cnt[i] ));
				while(x%cnt[i]==0)
				x/=cnt[i];
			}			
		}
		if(x>1)
		res=min(res,x-(m%x));

		printf("%d\n",res);


	}

	
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87081.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

疫情散去想看电影,用css动画模拟一个阿凡达2完美开场

在历经了艰苦卓绝的3年抗疫后&#xff0c;疫情终于还是来了&#xff0c;很多小伙伴变成了小洋人酸奶&#xff0c;我相信过不了多少天&#xff0c;疫情终将散去&#xff0c;那个时候就可以和家人走进电影院啦。 今天用css布局一个阿凡达2的影院场景&#xff0c;提前过一过瘾。 目…

ARM 异常返回地址

armv7-a armv8-a linux5.15 Preferred exception return address armv7 exception return address correction armv8-32 exception return address correction armv8-64 没有查到link value offset表 arm32 data abort exception为例 周期1周期2周期3周期4周期5指令1pc-8取指…

[附源码]Node.js计算机毕业设计电影推荐系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

【LSTM预测】基于鲸鱼算法优化双向长短时记忆BiLSTM(多输入单输出)航空发动机寿命预测含Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

CloudCompare算法库(CCCorelib)编译与使用

文章目录一、简介二、编译过程三、举个栗子优秀的算法库&#xff0c;值得所有点云爱好者去使用和研究*~*。 一、简介 之前一直没注意到CloudCompare的作者&#xff08;光头大佬&#xff09;已经将CloudCompare的算法库与其可视化部分进行了分离&#xff0c;今天正好有同学问了这…

以太坊地址Address介绍附代码示例

Address是什么 通常情况下&#xff0c;地址代表一外部账户或合约账户&#xff0c;它们都可以在区块链上接收&#xff08;目标地址&#xff09;或发送&#xff08;源地址&#xff09;。 更具体地说&#xff0c;它是根据ECDSA算法&#xff0c;从公钥的Keccak-256哈希值的最后20个…

MapRecuce 词频统计案例

文章目录初探MapReduce一、MapReduce核心思想二、MapReduce编程实例-词频统计思路1、map阶段(映射)2、reduce阶段(归并阶段)三、词频统计编程实现1、准备数据文件2、将文件上传到hdfs指定路径3、在java里创建词频统计映射器类4、创建词频统计驱动类5、运行词频统计驱动类&#…

【机器学习】SVM多分类问题及基于sklearn的Python代码实现

SVM多分类问题及Python代码实现1. 什么是SVM&#xff1f;2. SVM的分类3. SVM决策函数类型4. SVM多分类的Python代码实现参考资料1. 什么是SVM&#xff1f; 对于这个点已经介绍的非常多了&#xff0c;不管是西瓜书还是各种博客&#xff0c;就是需要找到一个超平面&#xff0c;用…

【Redis】Zset和Hash类型

Hash类型 Redis hash 是一个键值对集合。Redis hash是一个string类型的field和value的映射表&#xff0c;hash特别适合用于存储对象。 Hash 类型的底层数据结构是由压缩列表或哈希表实现的&#xff1a; 如果哈希类型元素小于512个&#xff0c;所有值的大小小于64字节。Redis…

一不小心手动实现了k8s的自动化构建

背景 由于公司需要对公司内部的软件需要对外部署&#xff0c;对于前端的部署&#xff0c;需要一套部署的方案。尝试了写了一个适配多模块可配置的部署脚本&#xff0c;本文对实现的过程进行一个记录。 目的 脚本采用的是node&#xff0c;前端同学的首选。脚本的目的就是实现k8s…

企业在ERP系统下的全面预算管理系统的实现

现代企业的发展离不开各种管理系统的建立和应用&#xff0c;针对于企业预算管理而言&#xff0c;全面的管理系统对于企业实现现代化管理有着较为深入的影响&#xff0c;ERP系统可以帮助企业更好的实现此项功能&#xff0c;本文就是在此背景下展开论述的。 编辑搜图 一、全面预算…

文件上传自动化测试方案

一、概述 【测试地址】&#xff1a;https://pan.baidu.com 【测试工具】selenium、requests 【脚本语言】Python 【运行环境】Windows 百度网盘作为文件存储及分享的平台&#xff0c;核心功能大部分是对文件的操作&#xff0c;如果要对它进行自动化测试&#xff0c;优先覆…

马克思主义基本原理笔记(黄色标记要求会背)

马克思主义基本组成部分 马克思主义哲学马克思主义政治经济学科学社会主义历史学、政治学、法学、文化学、新闻学、军事学等 唯物主义&#xff0c;唯心主义划分标准 唯物主义&#xff1a;把世界的本原归结为物质&#xff0c;主张物质是第一性&#xff0c;意识第二性&#xff0c…

Docker容器网络入门

1、查看默认网络模式 首先假定已经安装好docker了&#xff0c;不会安装的可以看我其他文章&#xff0c;很简单。docker安装好后默认是提供三种网络模式&#xff08;bridge、host、none&#xff09;&#xff0c;可以使用命令docker network ls查看网络状态 [rootlocalhost ~]#…

构建平衡二叉树(数据结构)

构建二又平衡树&#xff0c;插入的节点序列依次为:70 60 40 90 80 98 我们先了解一个构造规则 1、将每一个节点按照顺序依次使用 2、先将第一个节点画在图上&#xff0c;将第二个节点与第一个节点比较&#xff0c; &#xff08;1&#xff09;若比该节点大&#xff0c;第二个…

飞行员兄弟(蓝桥杯C/C++B组真题详解)

目录 题目链接&#xff1a;116. 飞行员兄弟 - AcWing题库​​​​​​ 题目思路&#xff1a; 代码详解&#xff1a; 题目链接&#xff1a;116. 飞行员兄弟 - AcWing题库​​​​​​ 题目思路&#xff1a; 1.我们可以知道 对于任意一个点 重复的按两次的话 回不改变原状…

ADI Blackfin DSP处理器-BF533的开发详解43:图像处理专题-ReverseColor (图像反色处理)(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像反色处理&#xff0c;代码运行时&#xff0c;会通过文件系统打开工程文件根目下" …/ImageView"路径中的 tes…

Linux下局域网yum源配置

文章目录一 需求二 搭建环境准备三 服务端1 创建镜像存放目录与挂载目录2 上传centos7镜像3 对镜像文件进行挂载4 配置本地yum源5 对挂载点建立软链接6 安装http服务7 浏览器验证http服务是否正常启动四 客户端1 修改yum配置文件2 查看yum源一 需求 公司集群架构中&#xff0c…

【linux】之大数据基础平台实施及运维上

一、大数据介绍 学习目标 能够了解为什么使用大数据技术 能够了解大数据指的是什么 为什么使用大数据技术&#xff1f; 数据量越来越大 数据量越来越大数据分析的实时性越来越强数据结果的应用越来越广泛 结论&#xff1a;我们需要使用大数据技术 大数据的定义 大数据是收…

GC垃圾回收器

分代收集器 新生代回收器 Serial&#xff1a;复制算法 | 单线程 | 适合内存不大的场景 ParNew&#xff1a;复制算法 | 多线程 | Serial收集器多线程版本 Parallel Scavenge&#xff1a;复制算法 | 多线程 | 类ParNew&#xff0c;更关注吞吐量 老年代回收器 Serial Old&#xf…