C. Division(分解质因数)

news2025/8/12 21:12:02

Problem - 1445C - Codeforces

 

奥列格最喜欢的科目是历史和数学,而他最喜欢的数学分支是除法。

为了提高他的除法技巧,奥列格想出了t对整数pi和qi,并决定为每对整数找到最大的整数xi,这样。

pi能被xi整除。
xi不能被qi整除。
奥列格非常擅长除法,很快就找到了所有的答案,你呢?
输入
第一行包含一个整数t(1≤t≤50)--配对的数量。

接下来的t行包含两个整数pi和qi(1≤pi≤1018;2≤qi≤109)--第i对整数。

输出
打印t个整数:第i个整数是最大的xi,使pi能被xi整除,但xi不能被qi整除。

我们可以证明,在给定的约束条件下,总有至少一个xi的值满足可分条件。

例子
输入
3
10 4
12 6
179 822
输出
10
4
179
注意
对于第一对,p1=10,q1=4,答案是x1=10,因为它是10的最大除数,而且10不能被4整除。

对于第二对,p2=12,q2=6,注意

12不是一个有效的x2,因为12可以被q2=6整除。
6也不是有效的x2。6也不是有效的x2:6也能被q2=6所除。
p2=12的下一个除数是4,这就是答案,因为4不能被6所除。

题解:
如果p%q != 0,那么直接输出p即可

任何一个正整数可以分解为一些质数的次方相乘

p = a1^k1*a2^k2......ai^ki

q = a1^k1*.....ai^ki

如果p%q == 0

说明q里面分解后的质数p里面都有,

那么我们就一个个先找出q的质数,然后check

void check(int x)
{
	long long t = p;
	while(t%q == 0)
	{
		t/=x;
	}
	ans = max(ans,t);
}

把p里面的质数x除到t%q!=0

#include<iostream>
#include<algorithm>
#include<map>
#include<queue>
#include<vector>
#include<cstring>
#include<stack>
using namespace std;
long long p,q,ans;
void check(int x)
{
	long long t = p;
	while(t%q == 0)
	{
		t/=x;
	}
	ans = max(ans,t);
}
void solve()
{
	cin >> p >> q;
	if(p%q)
	{
		cout<<p<<"\n";
		return ; 
	}
	long long x = q;
	ans = 0;
	for(int i = 2;i*i <= x;i++)
	{
		if(x % i == 0)
		{
			check(i);
		}
		while(x%i == 0)
		x/=i;
	}
	if(x > 1)
	{
		check(x);
	}
	cout<<ans<<"\n";
}
int main()
{
	int t = 1;
	cin >> t;
	while(t--)
	{
		solve();
	}
}
//
//abcdef
//babcdef
//1110011

//p%x == 0
//x%q != 0

//k*q + (1~q-1)

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

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

相关文章

基于NodeJs+Express+MySQL 实现的个人博客完整项目

目录 一、创建项目并初始化 项目结构 二、安装项目所需要的包 三、创建所需要的数据库表 表 user 用于存放账户密码 表 notepad 用于存放文章数据 表 leaving 用于存放留言板的数据 三、编写app.js文件 1、导入所有需要的包 2、创建web服务器 3、创建db文件夹&#…

智能制造APS,赋能「钣金行业」提升数字化战斗力!

导语&#xff1a; 钣金加工是典型的离散制造行业&#xff0c;具有品种多、批量小、交期短、质量要求高的发展趋势&#xff0c;这对钣金车间的生产管理提出了新的挑战。推进行业数字化、智能化改造&#xff0c;实现质效双提升&#xff0c;打破增长瓶颈&#xff0c;成为钣金行业…

Git常用命令与分支管理

Git常用的命令有以下6个&#xff1a;fetch/clone命令&#xff0c;add命令&#xff0c;commit命令&#xff0c;checkout命令&#xff0c;push命令&#xff0c;pull命令。 workspace&#xff1a;工作区staging area&#xff1a;暂存区loacl repository&#xff1a;本地仓库remot…

计算机毕业设计springboot+vue+elementUI会员制医疗预约服务管理信息系统

项目介绍 会员制医疗预约服务管理信息系统是针对会员制医疗预约服务管理方面必不可少的一个部分。在会员制医疗预约服务管理的整个过程中&#xff0c;会员制医疗预约服务管理系统担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类的管理系统也在不断改进 本系…

字节面试问到CPU的多级缓存架构,诸佬们怎么回答?

前言&#xff1a;大家好&#xff0c;我是小威&#xff0c;24届毕业生&#xff0c;上周在面试字节中&#xff0c;问到了一个关于CPU多级缓存架构的问题&#xff0c;当时答得并不是很好&#xff0c;之后查阅了资料&#xff0c;对此进行了复盘总结。 如果文章有什么需要改进的地方…

全网最详细SpringBoot、SpringCloud整合阿里云OSS对象存储服务

1、进入阿里云官网 https://www.aliyun.com/ 2、搜索“对象存储OSS” 3、进入“管理控制台” 4、进入“Bucket列表”&#xff0c;点击“创建Bucket” 5、根据实际情况选择&#xff0c;最后点击“确定” 这里插入一个可以通过代码创建Bucket的测试类&#xff0c;如下&#xff…

什么是供应商管理?为什么它很重要?

**供应商管理**是确保企业付给供应商的钱获得最大价值的过程&#xff0c;且目标是确保与供应商签订的所有合同都能满足企业业务的需求。 乍一看&#xff0c;供应商管理似乎是一件很容易总结的事情&#xff0c;建立适当的关系&#xff0c;管理需求&#xff0c;并与供应商进行清…

VR直播系统设置大揭秘,带你穿越时空亲临现场

直播现在可谓是各个行业的香饽饽&#xff0c;不管是电商带货直播&#xff0c;还是游戏竞赛直播都是如火如荼。而VR直播也逐渐频繁出现在大众眼前&#xff0c;就例如前两年广大人民都是通过VR直播在线观看火神山的建设&#xff0c;随着近两年5G技术和VR技术的兴起和发展&#xf…

MongoDB安装及进程介绍

文章目录 MongoDB安装重要的进程介绍mongo进程其他进程MongoDB安装 MongoDB 官方已经提供了Linux、Windows、Mac OS X 以及Solaris 4 种平台的二进制分发包,最新的稳定版本是 6.0.2,下载地址是:https://www.mongodb.com/try/download/community,如图: 下载完成后,解压…

Vue3源码解读之patch

例子代码 本篇将要讲解dom diff&#xff0c;那么咱们结合下面的例子来进行讲解&#xff0c;这个例子是在上一篇文章的基础上&#xff0c;加了一个数据变更&#xff0c;也就是list的值发生了改变。html中增加了一个按钮change&#xff0c;通过点击change按钮来调用change函数&a…

Java语法之封装

我们应该都知道Java面向对象的三大特性&#xff1a;封装&#xff0c;继承&#xff0c;多态&#xff0c;今天小编给大家分享封装这个概念以及使用&#xff0c;我们开始吧&#xff1a; 目录 &#x1f389;封装的概念 &#x1f389;封装的使用 &#x1f389;封装的好处 &#…

论文写作:word连续交叉引用

文章目录一、问题背景二、步骤一、问题背景 在写作得时候&#xff0c;使用word的 “交叉引用”功能可以形成超链接格式的标号。但是交叉引用每次只能选择一篇论文&#xff0c;在连续选择多篇论文的时候&#xff0c;就是 “[1][2][3]” 而不是 “[1-3]” 这样的格式。 如图&…

redis set zset key 常用命令

list 可以重复 set不可以 list 有序 set元素位置无序 key常用命令 #1. 存储数据 sadd key member [member ...] 获取的结果是无序的 #2. 获取数据&#xff08;获取全部数据&#xff09; smembers key #3. 随机获取一个数据&#xff08;获取的同时&#xff0c;移除数据&#…

22.11.17打卡 mysql学习笔记

为了不挂科...... 内连接 2022年11月17日 19:34 分为隐式内连接和显式内连接 区别是: 表的连接形式和链接条件的表现形式; 链接条件的表现形式 隐式内连接 显式内连接 外连接 2022年11月17日 19:44 外连接分为左外连接和右外连接 左外连接 右外连接 自连接 2022年11月17…

为什么vue3要选用proxy,好处是什么?

提问 Object.defineProperty()和proxy的区别&#xff1f;为什么vue3要选用proxy&#xff0c;好处是什么&#xff1f; proxy Proxy 对象用于创建一个对象的代理&#xff0c;从而实现基本操作的拦截和自定义&#xff08;如属性查找、赋值、枚举、函数调用等&#xff09;。 Pr…

微软推出Azure量子资源估算器,加速量子算法研发

​ &#xff08;图片来源&#xff1a;网络&#xff09; 近期&#xff0c;微软推出了Azure量子资源估算器&#xff0c;以帮助研发人员检查他们的算法是否可以在未来规模化的量子计算机上运行&#xff0c;并在不同硬件之间进行比较&#xff0c;同时估算在这些系统上执行量子应用…

JVM——垃圾回收机制和内存分配策略

文章目录垃圾回收的垃圾是什么如何判断一个对象是不是垃圾引用计数法可达性分析算法Java的引用垃圾回收基础算法标记清除标记整理标记复制分代垃圾回收GC分析实例HotSpot算法实现细节根节点枚举记忆集与卡表为什么需要记忆集卡表写屏障写屏障&#xff08;Write Barrier&#xf…

如何实现 MySQL 增删改查操作

文章目录1.新增1.1 不指定列插入1.2 指定列插入1.3 一次性插入多行2.查询2.1 全列查询&#xff08;查询表中的所有列&#xff09;2.2 指定列查询2.3 在查寻过程中进行简单计算&#xff08;列和列之间&#xff09;2.4 给查询结果的列指定一个别名2.5 查询的时候针对列来去重&…

【AI绘画 | draft意间】国产draft推荐及AI绘画背后的原理解读

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生&#xff0c;喜欢编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;小新爱学习. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc…

计算机网络—网络层

网络协议 IP 概述 因为网络层是整个互联网的核心&#xff0c;因此应当让网络尽可能简单。网络层提供简单灵活的、无连接的、尽最大努力交互的数据报服务。 使用 IP 协议&#xff0c;可以把异构的物理网络连接起来&#xff0c;使网络层像统一的网络 与 IP 协议配套使用有三种…