当前位置: 首页 > news >正文

蓝桥杯每日一真题—— [蓝桥杯 2021 省 AB2] 完全平方数(数论,质因数分解)

文章目录

  • [蓝桥杯 2021 省 AB2] 完全平方数
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 样例 #2
      • 样例输入 #2
      • 样例输出 #2
    • 提示
      • 思路:
        • 理论补充:完全平方数的一个性质:完全平方数的质因子的指数一定为偶数
        • 最终思路:
        • 小插曲:
      • 全部代码

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

题目描述

一个整数 aaa 是一个完全平方数,是指它是某一个整数的平方,即存在一个 整数 bbb,使得 a=b2a=b^{2}a=b2

给定一个正整数 nnn,请找到最小的正整数 xxx,使得它们的乘积是一个完全平方数。

输入格式

输入一行包含一个正整数 nnn

输出格式

输出找到的最小的正整数 xxx

样例 #1

样例输入 #1

12

样例输出 #1

3

样例 #2

样例输入 #2

15

样例输出 #2

15

提示

对于 30%30 \%30% 的评测用例, 1≤n≤10001 \leq n \leq 10001n1000,答案不超过 100010001000

对于 60%60 \%60% 的评测用例,1≤n≤1081 \leq n \leq 10^{8}1n108,答案不超过 10810^{8}108

对于所有评测用例,1≤n≤10121 \leq n \leq 10^{12}1n1012,答案不超过 101210^{12}1012

蓝桥杯 2021 第二轮省赛 A 组 G 题(B 组 H 题)。

思路:

这一看直接暴力就只能得一点点分,我还数论学的不太好先暴力得了30分。然后开始想办法吧!
没办法。。。看答案吧。。。

理论补充:完全平方数的一个性质:完全平方数的质因子的指数一定为偶数

1.唯一分解定理任意一个数 n,它都可以分解为若干个质数的乘积。

2.需要知道完全平方数的一个性质:完全平方数的质因子的指数一定为偶数。附上大佬的证明过
程:
在这里插入图片描述

最终思路:

对n进行质因数分解,如果质因数的指数为奇数的话就在x中乘以这个质因子这样,可以让指数保持偶数,如果是偶数那就不用管它~~~~
1.分解质因子:

for (long long i = 2; i * i <= n; i++){if (n % i == 0){cnt++;//记录有多少个因子,后面好遍历}while (n % i == 0){a[cnt] = i;//a数组存因子g[cnt]++;//g数组存因子指数n = n / i;}}if (n > 1){a[++cnt] = n;g[cnt]++;}//考虑没分解完的情况

2,根据性质得出答案:

  for (int i = 1; i <= cnt; i++)//遍历如果有奇数就让原来的n*ans*这个奇数质因子也就是让ans*这个奇数质因子{if (g[i] % 2){ans = ans * a[i];}}cout << ans;

小插曲:

质因数分解写错了最后输出了和n一样的数竟然得了60分!!

全部代码

#include <iostream>
using namespace std;long long n, ans = 1, g[1000], a[1000], cnt;
int main()
{cin >> n;// 首先对n进行质因数分解for (long long i = 2; i * i <= n; i++){if (n % i == 0){cnt++;//记录有多少个因子,后面好遍历}while (n % i == 0){a[cnt] = i;//a数组存因子g[cnt]++;//g数组存因子指数n = n / i;}}if (n > 1){a[++cnt] = n;g[cnt]++;}//考虑没分解完的情况//完全平方数的质因子的指数一定为偶数for (int i = 1; i <= cnt; i++)//遍历如果有奇数就让原来的n*ans*这个奇数质因子也就是让ans*这个奇数质因子{if (g[i] % 2){ans = ans * a[i];}}cout << ans;system("pause");return 0;
}
http://www.lryc.cn/news/42480.html

相关文章:

  • Linux编辑器-vim
  • 5G将在五方面彻底改变制造业
  • http和https的区别?
  • 【Spring Cloud Alibaba】4.创建服务消费者
  • C语言——动态内存管理 malloc、calloc、realloc、free的使用
  • 技术分享——Java8新特性
  • vue基础知识大全
  • 第2篇|文献研读|nature climate change|减缓气候变化和促进热带生物多样性的碳储量走廊
  • 从暴力递归到动态规划(2)小乖,你也在为转移方程而烦恼吗?
  • Leetcode.1638 统计只差一个字符的子串数目
  • KoTime:v2.3.9新增线程管理(线程统计、状态查询等)
  • 直面风口,未来不仅是中文版ChatGPT,还有AGI大时代在等着我们
  • 若依微服务(ruoyi-cloud)保姆版容器编排运行
  • vue2图片预览插件
  • 手写Promise源码的实现思路
  • 【数据结构】-关于树的概念和性质你了解多少??
  • 【前端之旅】NPM必知必会
  • Android SQLite使用事务来确保所有语句都以原子方式执行及保证数据完整性一次执行多条语句示例
  • nodejs+vue校园超市小卖部零食在线购物商城系统
  • Karl Guttag:论相机对焦技术在AR/VR中的沿用
  • ECL@SS学习笔记(3)-概念数据模型
  • 206. 反转链表
  • 文心一言 vs GPT-4 —— 全面横向比较
  • rancher2.6进阶之kubectl安装
  • 图像基本变换
  • 基于文心一言的底层视觉理解,百度网盘把「猫」换成了「黄色的猫」
  • 安卓开发的环境配置教程
  • 【Spring Cloud Alibaba】Spring Cloud Alibaba 搭建教程
  • 关于自动机器学习flaml训练时的一些报错
  • 【计算机视觉】消融实验(Ablation Study)是什么?