【Python】【demo实验7】【练习实例】【完全平方数相关】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
假设该数为 x。
1、则:x + 100 = n2, x + 100 + 168 = m2
2、计算等式:m2 - n2 = (m + n)(m - n) = 168
3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。
5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。
7、接下来将 i 的所有数字循环计算即可。
程序源代码(原为Python2.0):

这个计算方法挺有意思,待研究

我的源代码:
#!/usr/bin/python
# encoding=utf-8
# -*- coding: UTF-8 -*- # 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
# 解题思路:先找出这个数的大概范围z
# 在通过定义的函数判断各个数是否为完全平方数,是否符合题目条件; #验证是否为完全平方数 import math
def isSqr(n):
a = int((math.sqrt(n)))
return a * a == n
#自定义函数的返回值,对于完全平方数,返回True,非完全平方数返回False; #通过这个循环判断答案的边界,为下一个循环输入参数;
#随着因数t的增加,其平方与t+1的平方之差会越来越多,所以通过这个规律设置这个循环
#题目中两个完全平方数之差为168
for y in range(0,10000):
if (y+1)**2-y**2>=168:
z=y**2+1 #range迭代时,不包含第二个参数
print("y:",y,"z:",z)
break #最小数值应从-100开始
for i in range(-100,z):
if i%10 in [0,1,4,5,6,9]: #根据完全平方数的特性,个位数只能是这几个数。
if isSqr(i+100) and isSqr(i+268):
print(i,"##",(i+100)**0.5,"&&&",(i+268)**0.5)
输出结果:
C:\Python30_demo>python 018demo.py
y: z:
- ## 1.0 &&& 13.0
## 11.0 &&& 17.0
## 19.0 &&& 23.0
## 41.0 &&& 43.0
总共有四个数字,-99,1,21,261,1581
————————(我是分割线)————————
参考:
1. RUNOOB.COM : https://www.runoob.com/python/python-exercise-example3.html
2. https://www.cnblogs.com/zlsjjn/p/7459607.html
3. 百度百科:https://baike.baidu.com/item/%E5%AE%8C%E5%85%A8%E5%B9%B3%E6%96%B9%E6%95%B0/8025061?fr=aladdin
备注:
初次编辑时间:2019年9月22日23:37:37
第一次修改:2019年9月23日00:06:08 / 修改格式及部分重复内容
环境:Windows 7 / Python 3.7.2
【Python】【demo实验7】【练习实例】【完全平方数相关】的更多相关文章
- python+requests接口自动化测试框架实例详解
python+requests接口自动化测试框架实例详解 转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...
- python urllib2详解及实例
urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件.他以urlopen函数的形式提供了一个非常简单的接口, 这是具有利用不同协议获取URLs的能 ...
- python 之调用Linux shell命令及相关高级应用
最近根据老大要求,将数据进行同步备份,结合第三方提供的工具.第三方服务其实是有python demo的,本想研究下实际的python sdk搞个demo开发的,但是发现有些组建装起来确实头大,而且本公 ...
- Python学习:类和实例
Python学习:类和实例 本文作者: 玄魂工作室--热热的蚂蚁 类,在学习面向对象我们可以把类当成一种规范,这个思想就我个人的体会,感觉很重要,除了封装的功能外,类作为一种规范,我们自己可以定制的规 ...
- Python 利用Python编写简单网络爬虫实例3
利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://bbs.51testing. ...
- Python 利用Python编写简单网络爬虫实例2
利用Python编写简单网络爬虫实例2 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://www.51testing. ...
- 转:python常用运维脚本实例
python常用运维脚本实例 转载 file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函 ...
- python常用运维脚本实例【转】
file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函数open()来打开一个文件 . 首先 ...
- Python中对列表排序实例
Python中对列表排序实例 发布时间:2015-01-04 09:01:50 投稿:junjie 这篇文章主要介绍了Python中对列表排序实例,本文给出了9个List的排序实例,需要的朋友可以参考 ...
- Python编程之列表操作实例详解【创建、使用、更新、删除】
Python编程之列表操作实例详解[创建.使用.更新.删除] 这篇文章主要介绍了Python编程之列表操作,结合实例形式分析了Python列表的创建.使用.更新.删除等实现方法与相关操作技巧,需要的朋 ...
随机推荐
- 小米 oj 找到第N个数字||
Mycode: #include<iostream> #include<stdio.h> #include<string.h> using namespace st ...
- hdu 5572 An Easy Physics Problem 圆+直线
An Easy Physics Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/ ...
- shell脚本中${...}函数的用法总结
${...}在字符串中有非常多的用法: 1.${var} 限定变量. 如果一个变量名A是另一个变量名AB的前部分,那么,如果要在AB相连时,要得到A的值,就必须使用${var}限定. 如果变量名不会产 ...
- Multiism四阶巴特沃兹低通滤波器的仿真实现
因为4阶巴特沃兹低通滤波器比较简单,所以省略设计过程和思路以及不必要的废话. 设计的滤波器的性能:截止频率大约是500HKZ,Rs = Rl = 32 欧姆. 预估滤波器大致的幅频特性曲线如下: 最初 ...
- 下载 OllyDbg
http://www.ollydbg.de/
- 网络层中的 IP 协议
IP协议 IP(IPv4.IPv6)相当于 OSI 参考模型中的第3层——网络层.网络层的主要作用是“实现终端节点之间的通信”.这种终端节点之间的通信也叫“点对点通信”. 网络的下一层——数据链路层的 ...
- IntelliJ IDEA 2017 上传本地项目至码云
码云免费还挺好用,和Git类似.首先需要注册一个码云.这个就不介绍了. 点击加号,新建一个项目. 填写项目名称. 复制一下你的项目地址. 如图勾选.将项目至于git管理. 首先commit.快捷按 ...
- LeetCode 25. k个一组翻转链表(Reverse Nodes in k-Group)
题目描述 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序. 示例 : 给定 ...
- leetcode-hard-ListNode-148. Sort List
mycode 97.37% 如果用上一个题目中”参考“的方法,res中放节点而不是val,就会超时 # Definition for singly-linked list. # class Li ...
- springboot-mvc:入参日期类型转换String->Date
4种方式: 1.通过在application.ym中配置 spring.mvc.data-format: yyyy-MM-dd HH:mm:ss ,使用的是ParserConverter 优点:简单的 ...