P8754 [蓝桥杯 2021 省 AB2] 完全平方数

首先,要使 \(nx\) 为完全平方数,需要知道完全平方数的一个性质:完全平方数的质因子的指数一定为偶数

证明:

设 \(\sqrt{nx}=b\) ,\(b\) 是正整数,则根据唯一分解定理,可得:

\[b=p_{1}^{k_{1}}\times p_{2}^{k_{2}}\times p_{3}^{k_{3}}\times ... \times p_{r}^{k_{r}}
\]

其中 \(p_{1},p_{2},p_{3}...p_{r}\) 为质数。

由完全平方数的定义,这个完全平方数 \(nx\) 为 \(b^2\) ,即:

\[nx=(p_{1}^{k_{1}}\times p_{2}^{k_{2}}\times p_{3}^{k_{3}}\times ... \times p_{r}^{k_{r}})^2
\]

把括号拆开,得到

\[nx=p_{1}^{2k_{1}}\times p_{2}^{2k_{2}}\times p_{3}^{2k_{3}}\times ... \times p_{r}^{2k_{r}}
\]

可以看到,每个质因子的指数均为 \(2k_{m}\) ,必然是偶数。

所以,可以得到这样一个思路:

对 \(n\) 进行质因数分解,若质因子指数为偶数,对结果无影响。若质因子指数为奇数,则在 \(x\) 中乘以这个质因子,保证指数为偶数

最后是完整代码:

#include <bits/stdc++.h>
using namespace std;
long long n,ans=1;
int main()
{
scanf("%lld",&n);
for(long long i=2;i*i<=n;i++)
{
int cnt=0; //cnt计数,表示质因子pri[i]的指数
while(!(n%i))cnt++,n/=i;
if(cnt%2)ans*=i; //如果指数不是偶数,在x中要有一个这个质因子,保证指数为偶数
}
if(n!=1)ans*=n;//注意n没分尽的情况
printf("%lld",ans);
return 0;
}

AC记录

Luogu P8754 [蓝桥杯 2021 省 AB2] 完全平方数 题解的更多相关文章

  1. 第六届蓝桥杯软件类省赛题解C++/Java

    第六届蓝桥杯软件类省赛题解C++/Java 1[C++].统计不含4的数字统计10000至99999中,不包含4的数值个数.答:暴力循环范围内所有数字判断一下就是了,答案是52488 1[Java]. ...

  2. 第九届蓝桥杯C/C++B组题解附代码

    1.标题:第几天 2000年的1月1日,是那一年的第1天.那么,2000年的5月4日,是那一年的第几天? 125天 打开日历就ok 2. 标题:明码 汉字的字形存在于字库中,即便在今天,16点阵的字库 ...

  3. 方格填数--蓝桥杯---dfs

    答案:1580 相似题目:N皇后问题 注意要枚举的是什么 #include<iostream> #include<string.h> using namespace std; ...

  4. Java实现蓝桥杯 算法训练 大等于n的最小完全平方数

    试题 算法训练 大等于n的最小完全平方数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输出大等于n的最小的完全平方数. 若一个数能表示成某个自然数的平方的形式,则称这个数为完全平 ...

  5. 2021蓝桥杯省赛B组(C/C++)E.路径【最短路DP】

    2021蓝桥杯省赛B组题目(C/C++)E.路径 最短路径, 因为变化情况比较多, 所以开始想的是深搜, 但是太慢了, 跑不出来, 后来就想着优化一下, 有的地方到另一个地方可能会考虑很多遍, 于是考 ...

  6. 2021蓝桥杯省赛C++A组试题E 回路计数 状态压缩DP详细版

    2021蓝桥杯省赛C++A组试题E 回路计数 状态压缩DP 题目描述 蓝桥学院由21栋教学楼组成,教学楼编号1到21.对于两栋教学楼a和b,当a和b互质时,a和b之间有一条走廊直接相连,两个方向皆可通 ...

  7. 2021年蓝桥杯python真题-路径(数论+动态规划)(LCM、GCD和DP详细介绍)干货满满~

    欢迎大家阅读本文章 如果大家对LCM和GCD不是很熟悉,这篇文章将对你有帮助! 本文章也会把动态规划做一定的介绍 题目: GCD和LCM的讲解: GCD的实现-辗转相除法: 在数学中,辗转相除法,又称 ...

  8. 2016年蓝桥杯B组C/C++决赛题解

    2016年第七届蓝桥杯B组C/C++决赛题解 2016年蓝桥杯B组C/C++决赛题目(不含答案) 1.一步之遥 枚举解方程,或者套模板解线性方程 #include<bits/stdc++.h&g ...

  9. 2012年 蓝桥杯预赛 java 本科 题目

    2012年 蓝桥杯预赛 java 本科 考生须知: l  考试时间为4小时. l  参赛选手切勿修改机器自动生成的[考生文件夹]的名称或删除任何自动生成的文件或目录,否则会干扰考试系统正确采集您的解答 ...

  10. 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索

    问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...

随机推荐

  1. Unity3D教程:次表面散射的简单实现

    次表面散射指的是光线射入半透明材质,在内部发生散射后再透射出来的光线传播过程,考虑到有些项目会需要使用次表面散射,下面就给大家介绍下在Unity3D中次表面散射的简单实现,希望可以帮到大家. 一.前言 ...

  2. 2025年4月TIOBE指数

    4 月头条:编程语言 Kotlin.Ruby 和 Swift 直到最近在 TIOBE 指数排名中都一直稳居前 20 的稳定位置.但如今它们似乎失去了发展动力,且很可能会逐渐过时.Kotlin 和 Sw ...

  3. 你了解 Java 的逃逸分析吗?

    Java 的逃逸分析 1. 定义 逃逸分析(Escape Analysis)是 JVM 的一种优化技术,用于分析对象的作用域,从而决定对象的分配方式或优化手段. 主要目的是判断一个对象是否会逃离当前方 ...

  4. doctrine 与 mysql 数据类型的详细转换规则。

    doctrine 与 mysql 数据类型的详细转换规则 // mysql -> doctrine array( 'tinyint' => 'boolean', 'smallint' =& ...

  5. Web前端开发规范手册(有点老,仅供参考)

    一.规范目的 1.1 概述 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进行前台页面开发. 本 ...

  6. Java编程--单例(Singleton)设计模式

    单例设计模式 一个类只有一个实例,根据创建的时机又分为懒汉式和饿汉式,它们的区别主要体现在实例的创建时机和线程安全性上. 饿汉式(Eager Initialization): 特点: 在类加载时就创建 ...

  7. 【经验】Git|Linux终端git太慢,改hosts、复制文件夹、用镜像源?不不不不不

      有个同学问我Linux下想要克隆一个仓库怎么办,并给我发了一个word,记录了他的操作.看完之后我的血压都上来了,遂记之.   下文分成两种情况,克隆一两个仓库,和克隆一大堆仓库. 文章目录 一. ...

  8. 🧠 30 个 MCP 项目创意(附完整源码)

    MCP(Model Context Protocol)是一种新兴的开放协议,旨在标准化应用程序如何向大型语言模型(LLMs)提供上下文和工具.它允许 AI 代理与实际工具和应用程序交互,从而实现复杂的 ...

  9. Number of Atoms——LeetCode进阶路

    原题链接https://leetcode.com/problems/number-of-atoms/ 题目描述 Given a chemical formula (given as a string) ...

  10. RabbitMQ学习笔记【长更】

    文章发表在了我的博客上:https://blog.ysboke.cn/archives/64.html 一.MQ作用 就仨:异步.削峰.解耦 1.任务异步处理 将不需要同步处理的并且耗时长的操作由消息 ...