完全平方数——唯一分解定理
文章目录
- 一、唯一分解定理是什么?
- 1.定义
- 2.示例
- 3.代码模板
- 二、例题
- 1>问题描述(2021蓝桥杯省赛)
- 输入格式
- 输出格式
- 样例输入 1
- 样例输出 1
- 样例输入 2
- 样例输出 2
- 评测用例规模与约定
- 2>解题思路
- 3>假娃
- 3>C嘎嘎
一、唯一分解定理是什么?
1.定义
唯一分解定理是数论中的一个重要定理,它告诉我们:
任何大于 1 的正整数,都可以唯一分解为若干个质数的乘积(忽略排列顺序)。
数学表达式:
对于任意正整数 ( n > 1 ) ( n > 1 ) (n>1),可以表示为:
n = p 1 e 1 × p 2 e 2 × ⋯ × p k e k n = p_1^{e_1} \times p_2^{e_2} \times \cdots \times p_k^{e_k} n=p1e1×p2e2×⋯×pkek
其中:
- ( p 1 , p 2 , … , p k ) ( p_1, p_2, \dots, p_k ) (p1,p2,…,pk) 是质数;
- ( e 1 , e 2 , … , e k ) ( e_1, e_2, \dots, e_k ) (e1,e2,…,ek) 是正整数;
2.示例
-
12 的分解:
12 = 2 2 × 3 1 12 = 2^2 \times 3^1 12=22×31
质因数是 2 2 2 和 3 3 3。 -
100 的分解:
100 = 2 2 × 5 2 100 = 2^2 \times 5^2 100=22×52
质因数是 2 2 2 和 5 5 5。
修改后的格式如下: -
97 的分解:
97 = 9 7 1 97 = 97^1 97=971
97 97 97 是质数,本身就是唯一分解。
3.代码模板
import java.util.*;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n=sc.nextInt();//Math.sqrt(n)可以进行时间优化for(int i=2;i<=Math.sqrt(n);i++){if(n%i==0){int count=0;//记录当前质数i的幂次while(n%i==0){count++;n/=i;//除掉所有因子i}System.out.println(i+" "+count);//输出对应的因子 以及 它的幂次}}if(n>1){//如果没有除完,最后一个数一定是质因子System.out.println(n+" "+1);//输出对应的因子 以及 它的幂次}}
}
二、例题
1>问题描述(2021蓝桥杯省赛)
一个整数 a a a 是一个完全平方数,是指它是某一个整数的平方,即存在一个整数 b b b,使得 a = b 2 a = b^2 a=b2。
给定一个正整数 n n n,请找到最小的正整数 x x x,使得它们的乘积是一个完全平方数。
输入格式
输入一行包含一个正整数 n n n。
输出格式
输出找到的最小的正整数 x x x。
样例输入 1
12
样例输出 1
3
样例输入 2
15
样例输出 2
15
评测用例规模与约定
- 对于 30 的评测用例, 1 ≤ n ≤ 1000 1 \leq n \leq 1000 1≤n≤1000,答案不超过 1000 1000 1000。
- 对于 60 的评测用例, 1 ≤ n ≤ 1 0 8 1 \leq n \leq 10^8 1≤n≤108,答案不超过 1 0 8 10^8 108。
- 对于所有评测用例, 1 ≤ n ≤ 1 0 12 1 \leq n \leq 10^{12} 1≤n≤1012,答案不超过 1 0 12 10^{12} 1012。
2>解题思路
根据题意分析,我们要求最小的 x x x 使得 x × n x\times n x×n 是一个完全平方数。 显而易见的是,最坏情况, x x x 只能是 n n n本身。因此我们只需要在整数 n n n 以内去寻找最小的 x x x 即可。 结合唯一分解定理,任何一个大于1的整数,一定可以分解成一个或者多个质数(也叫素数)相乘。如果一个数是完全平方数,则经过唯一分解后,其质因子的幂次一定是偶数! 例如:
-
36 36 36 的分解
36 = 2 2 × 3 2 36 = 2^2 \times 3^2 36=22×32
幂次: 2 , 2 2, 2 2,2(都是偶数)
因此, 36 36 36 是完全平方数。 -
144 144 144 的分解
144 = 2 4 × 3 2 144 = 2^4 \times 3^2 144=24×32
幂次: 4 , 2 4, 2 4,2(都是偶数)
因此, 144 144 144 是完全平方数。 -
81 81 81 的分解
81 = 3 4 81 = 3^4 81=34
幂次: 4 4 4(是偶数)
因此, 81 81 81 是完全平方数。 -
100 100 100 的分解
100 = 2 2 × 5 2 100 = 2^2 \times 5^2 100=22×52
幂次: 2 , 2 2, 2 2,2(都是偶数)
因此, 100 100 100 是完全平方数。 -
72 72 72 的分解(反例)
72 = 2 3 × 3 2 72 = 2^3 \times 3^2 72=23×32
幂次: 3 , 2 3, 2 3,2( 3 3 3 不是偶数)
因此, 72 72 72 不是完全平方数。
至此,解题思路就很明了啦。唯一分解给定的 n n n 寻找其质因子,如果质因子对应的幂次是奇数,则需要补齐对应的一个质因子,把它累乘到答案中即可。
3>假娃
import java.util.*;// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);//测试用例数据规模比较大,必须用longlong ans=1;long n=sc.nextLong();for(long i=2;i<=Math.sqrt(n);i++){if(n%i==0){long count=0;while(n%i==0){count++;n/=i;}if(count%2==1){ans*=i;}}}if(n>1)ans*=n;System.out.println(ans);}
}
3>C嘎嘎
#include <iostream>
#include <cmath> // 用于 sqrt 函数
using namespace std;int main() {long long ans = 1; // 用 long long 处理大数long long n;cin >> n; // 输入 nfor (long long i = 2; i <= sqrt(n); i++) {if (n % i == 0) { // 判断是否为因子long long count = 0;while (n % i == 0) { // 统计当前因子的幂次count++;n /= i;}if (count % 2 == 1) { // 如果幂次是奇数ans *= i;}}}if (n > 1) ans *= n; // 如果 n 还大于 1,则 n 本身是一个质数cout << ans << endl; // 输出结果return 0;
}
相关文章:

完全平方数——唯一分解定理
文章目录 一、唯一分解定理是什么?1.定义2.示例3.代码模板 二、例题1>问题描述(2021蓝桥杯省赛)输入格式输出格式样例输入 1样例输出 1样例输入 2样例输出 2评测用例规模与约定 2>解题思路3>假娃3>C嘎嘎 一、唯一分解定理是什么&…...

(详细)Springboot 整合动态多数据源 这里有mysql(分为master 和 slave) 和oracle,根据不同路径适配不同数据源
文章目录 Springboot 整合多动态数据源 这里有mysql(分为master 和 slave) 和oracle1. 引入相关的依赖2. 创建相关配置文件3. 在相关目录下进行编码,不同路径会使用不同数据源 Springboot 整合多动态数据源 这里有mysql(分为maste…...

mock可视化生成前端代码
介绍:mock是我们前后端分离的必要一环、ts、axios编写起来也很麻烦。我们就可以使用以下插件,来解决我们的问题。目前支持vite和webpack。(配置超级简单!) 欢迎小伙伴们提issues、我们共建。提升我们的开发体验。 vi…...

Spring Boot(6)解决ruoyi框架连续快速发送post请求时,弹出“数据正在处理,请勿重复提交”提醒的问题
一、整个前言 在基于 Ruoyi 框架进行系统开发的过程中,我们常常会遇到各种有趣且具有挑战性的问题。今天,我们就来深入探讨一个在实际开发中较为常见的问题:当连续快速发送 Post 请求时,前端会弹出 “数据正在处理,请…...

鸿蒙Harmony json转对象(1)
案例1 运行代码如下 上图的运行结果如下: 附加1 Json_msg interface 案例2 import {JSON } from kit.ArkTS; export interface commonRes {status: numberreturnJSON: ESObject;time: string } export interface returnRes {uid: stringuserType: number; }Entry Component …...
常见的RocketMQ面试题及其简要答案
以下是一些常见的RocketMQ面试题及其简要答案: 一、基础概念与架构 简述RocketMQ是什么,并说明其主要作用。 答案: RocketMQ:是阿里巴巴在2012年开源的一款分布式消息中间件,目前已经捐赠给Apache软件基金会ÿ…...
C#Object类型的索引,序列化和反序列化
前言 最近在编写一篇关于标准Mes接口框架的文章。其中有一个非常需要考究的内容时如果实现数据灵活和可使用性强。因为考虑数据灵活性,所以我一开始选取了Object类型作为数据类型,Object作为数据Value字段,String作为数据Key字段,…...
Unity3D项目开发中的资源加密详解
前言 在Unity3D游戏开发中,保护游戏资源不被非法获取和篡改是至关重要的一环。资源加密作为一种有效的技术手段,可以帮助开发者维护游戏的知识产权和安全性。本文将详细介绍Unity3D项目中如何进行资源加密,并提供相应的技术详解和代码实现。…...

微调Qwen2:7B模型,加入未知信息语料
对于QWen2这样的模型,在微调的时候,语料的投喂格式满足ChatML这样的格式!!! OpenAI - ChatML: 下面是ChatML格式的介绍: https://github.com/openai/openai-python/blob/release-v0.28.0/chatml.mdhttps://github.com/openai/openai-python/blob/release-v0.28.0/chat…...

【Ubuntu】安装SSH启用远程连接
【Ubuntu】安装OpenSSH启用远程连接 零、安装软件 使用如下代码安装OpenSSH服务端: sudo apt install openssh-server壹、启动服务 使用如下代码启动OpenSSH服务端: sudo systemctl start ssh贰、配置SSH(可跳过) 配置文件 …...

【理论】测试开发工程师进阶路线
一、腾讯与阿里的质量保证服务参考 阿里云效测试能力与架构 腾讯 WeTest 测试能力全景图 二、测试开发技术体系 1.用户端测试: Web/App 测试 Web/App 自动化测试 用户端专项测试 用户端安全测试 2.服务端测试: 接口协议与 Mock 接口自动化测试 服务端…...

【BQ3568HM开发板】如何在OpenHarmony上通过校园网的上网认证
引言 前面已经对BQ3568HM开发板进行了初步测试,后面我要实现MQTT的工作,但是遇到一个问题,就是开发板无法通过校园网的认证操作。未认证的话会,学校使用的深澜软件系统会屏蔽所有除了认证用的流量。好在我们学校使用的认证系统和…...
動態住宅IP提升網站訪問成功率
動態住宅IP通常與普通家庭用戶的網路連接相關聯。這種IP地址的特點在於,它是動態變化的,用戶在每次連接時可能會獲得不同的IP地址。這與靜態IP形成了鮮明對比,後者在連接期間保持不變。傳統上,IP地址分為住宅IP和數據中心IP兩類。…...

2024年博客之星主题创作|2024年蓝桥杯与数学建模年度总结与心得
引言 2024年,我在蓝桥杯编程竞赛和数学建模竞赛中投入了大量时间和精力,这两项活动不仅加深了我对算法、数据结构、数学建模方法的理解,还提升了我的解决实际问题的能力。从蓝桥杯的算法挑战到数学建模的复杂应用,我在这些竞赛中…...

Spring Boot/MVC
一、Spring Boot的创建 1.Spring Boot简化Spring程序的开发,使用注解和配置的方式开发 springboot内置了tomact服务器 tomact:web服务器,默认端口号8080,所以访问程序使用8080 src/main/java:Java源代码 src/main/resource:静态资源或配置文件,存放前端代码(js,css,html) s…...
由于请求的竞态问题,前端仔喜提了一个bug
在平常的开发过程中,你可能会遇到这样一个bug。 测试:我在测一个输入框搜索的功能时,告诉你通过输入框输入的内容,和最终通过输入内容搜索出来的结果对不上。 前端:我是通过调用后端接口拿到的数据,这明显…...
【Day25 LeetCode】贪心Ⅲ
一、贪心Ⅲ 1、加油站 134 这道题直接想法是采用二重循环暴力搜索,简单粗暴但是会超时,是因为以每个点为起点最坏的情况可能都要遍历完全部的序列,有大量重复的操作,那有没有优化的地方呢?有一个结论:如果…...

蓝桥杯练习日常|递归-进制转换
未完待续,,,,,, 目录 蓝桥云课760数的计算 一、递归 题目: 我的解题代码: 二、进制转换 任意进制转十进制: 十进制转换为其他进制: 进制蓝桥杯题目…...

AI Agent:深度解析与未来展望
一、AI Agent的前世:从概念到萌芽 (一)早期探索 AI Agent的概念可以追溯到20世纪50年代,早期的AI研究主要集中在简单的规则系统上,这些系统的行为是确定性的,输出由输入决定。随着时间的推移,…...

《SwinIR:使用Swin-Transformer图像恢复》学习笔记
paper:2108.10257 GitHub:GitHub - JingyunLiang/SwinIR: SwinIR: 使用 Swin Transformer 进行图像修复 (官方仓库) 目录 摘要 1、Introduction 2、Related Work 2.1 图像修复 2.2 视觉Transformer…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...

自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...