2021年第十二届蓝桥杯省赛第二场Python组(真题+解析+代码):完全平方数

1 真题


2 解析

难度系数:⭐⭐⭐

考察题型:枚举 数论

涉及知识点:唯一分解定理 质数因子

思路分析:

关键是找到唯一分解定理下的奇数个的质数因子

第一次遇见这句话可能不理解,下面我解释一下这两个名词。

唯一分解定理:一个合数(2的倍数)可以用一种最小质数的形式表示。

比如:6=2*3 12=2*2*3

质数因子:又是质数又是因子 

质数:2,3,5,7,11······

因子:比如6的因子:1,2,3,6

6的质因子就是:2,3

具体思路:给奇数个质数因子再乘上一个该质数就可以让这个数变成完全平方数

ans=n*x

36=12*3

36=2*2*3*3

举个栗子:对于偶数个质因子“2”,因为2*2已经配对成完全平方数4,所以不需要计数。

只需要统计奇数个质因子是一个“3”,最后n*x=12*3,答案ans=完全平方数36了。

参考思路:

蓝桥每日真题之完全平方数_哔哩哔哩_bilibili


3 代码

#完全平方数
n=int(input())#样例输入:12
x=1           #x:最小正整数
for i in range(2,int(n**0.5)+1):#循环遍历
    cnt=0         #cnt:质数因子的个数
    while n%i==0: #拆分因数   #12%2 6%2  3%3
        cnt+=1               #1    2    3
        n//=i                #6    3    1
    if cnt%2==1:  #如果分解因子是奇数个数
        x*=i      #答案乘上质数因子x=1*3
print(x)          #样例输出3*12=36

      


      📍我写的是关于蓝桥杯的系列题解,感谢关注我的朋友们,我会持续输出高质量文章💪🏻           

蓝桥杯python组十二届省赛第二场真题+解析+代码(通俗易懂版)_编程有了思路-CSDN博客在 C/C++/Java/Python 等语言中,使用 % 表示求余,请问 2021%20 的值是多少?一个正整数的双阶乘,表示不超过这个正整数且与它有相同奇偶性的所有正整数乘积。n 的双阶乘用 n!! 表示。如果一个点 (x, y) 的两维坐标都是整数,即 x ∈ Z 且 y ∈ Z,则称这个点为一个格点。https://blog.csdn.net/m0_55148406/article/details/122790119

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蓝刷题

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值