【做题记录】CF1444A Division
时间:2021-09-20
本文章向大家介绍【做题记录】CF1444A Division,主要包括【做题记录】CF1444A Division使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题意:
给定 \(t\) 组询问,每组给两个数 \(p_i\) 和 \(q_i\) ,找出最大的整数 \(x_i\) ,要求 \(p_i\) 可被 \(x_i\) 整除,且 \(x_i\) 不可被 \(q_i\) 整除 。
题解:
呜呜呜这道题总共算下来我爆了 \(15\) 发 \(\dots\) 妥妥掉分
-
\(p\nmid q\) :显然答案为 \(p\) 。
-
\(p\mid q\) :枚举每个 \(q\) 的因子 \(d\) ,将 \(p\) 一直除 \(d\) 直到不能被 \(q\) 整除为止,余数就是对应的答案 。最终答案就是所有余数中算出来的答案取 \(\max\) 。
为什么这是正确的:因为使劲除完 \(d\) 以后的余数一定是 \(p\) 的因子,且一定不被 \(q\) 整除 。
代码:
#include<bits/stdc++.h>
using namespace std;
#define Maxn 105
typedef long long ll;
ll maxll(ll x,ll y){ return x>y?x:y; }
ll t,p,q,ans;
ll cnt(ll x)
{
ll tmp=p;
while(tmp%q==0) tmp/=x;
return tmp;
}
int main()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
scanf("%lld",&t);
while(t--)
{
scanf("%lld%lld",&p,&q),ans=1;
if(p%q) printf("%lld\n",p);
else
{
for(ll i=2;i*i<=q;i++) if(q%i==0)
ans=maxll(ans,cnt(i)),ans=maxll(ans,cnt(q/i));
ans=maxll(ans,cnt(q));
printf("%lld\n",ans);
}
}
//fclose(stdin);
//fclose(stdout);
return 0;
}
原文地址:https://www.cnblogs.com/EricQian/p/15314196.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用Webrtc和React Js在网络上共享跨平台的点对点文件
- JSBridge小科普
- Greenplum编译安装
- 宏任务和微任务到底是什么?
- React中的setState是异步的吗?
- java安全编码指南之:堆污染Heap pollution
- ECMAScript6基础学习教程(五)对象
- React入门系列(三)创建组件
- prometheus学习笔记(2)-利用java client写入数据
- Vue入门系列(一)Vue技术栈
- Openwrt智能路由系统开发--内容总结
- 干爆红队-爆破CS Teamserver 密码
- 使用Golang免杀Tips
- centos7卸载自带jdk并安装新的jdk
- 即使不懂单元测试,会用这个工具也够了~