解题思路:

根据题意,符合条件的数要满足的条件为

①一个数要满足是平方数

②这个数要能拆分成两部分

③拆分成的两部分也要是平方数

注意:这里0并不是平方数

拿1681举例吧

1681是平方数,接下来要进行拆分:

1和681,681不是平方数

16和81,满足条件。


注意事项:

参考代码:

from math import sqrt  
  
def Isqure(x):          #判断一个数是否是平方数
    if x == 0:  
        return False  
  
    if sqrt(x) - int(sqrt(x)) == 0:  
        return True  
      
    return False  
  
def f(a,b):  
    for item in range(a,b+1):  
        if item > 9:  #是否满足第二个条件
            if Isqure(item):           #是否满足第一个条件 
                item = str(item)  
                l = len(item)  
                for i in range(1,l):  #进行拆分
                    if Isqure(int(item[:i])) and Isqure(int(item[i:])):  #是否满足第三个条件
                        print(item)  
                        break  
  
  
if __name__ == '__main__':  
    a,b = map(int,input().strip().split())  
    f(a,b)


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论