用来练手的python 练习题,原链接 : python练习实例3

拿到题目就写了如下代码,思路是因为使用**0.5进行开平方操作时,python会将数据类型自动转换为float单精度浮点型。这里利用提取其整数部分,来判断这个数是否是完全平方数。

z = 13
while (z**2 - 168)**0.5 != int((z**2 - 168)**0.5):z+=1x = z**2-268
print(x)

输出结果 :

这个代码问题也很明显,没有办法穷举而只能找出最小的x的值。为了穷举所有的结果,参考答案给出了以下分析 :

假设该数为 x。

1、则:x+100=n2,x+100+168=m2x + 100 = n^2, x + 100 + 168 = m^2x+100=n2,x+100+168=m2, 其中m,n,x均为整数

2、计算等式:m2−n2=(m+n)(m−n)=168m^2 - n^2 = (m + n)(m - n) = 168m2−n2=(m+n)(m−n)=168

3、设置: m+n=i,m−n=j,i∗j=168m + n = i,m - n = j,i * j =168m+n=i,m−n=j,i∗j=168,i 和 j 至少一个是偶数

4、可得: m=(i+j)/2,n=(i−j)/2m = (i + j) / 2, n = (i - j) / 2m=(i+j)/2,n=(i−j)/2,由于m,n都是整数,因此 i 和 j 要么都是偶数,要么都是奇数。

5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。

6、由于 i∗j=168,j>=2i * j = 168, j >=2i∗j=168,j>=2,则 1<i<168/2+11 < i < 168 / 2 + 11<i<168/2+1 。

7、接下来将 i 的所有数字循环计算即可。

标准答案源代码如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-for i in range(1,85):if 168 % i == 0:j = 168 / i;if  i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0 :m = (i + j) / 2n = (i - j) / 2x = n * n - 100print(x)

通过分析题干我们最终确定了遍历的范围,实现了穷举,输出如下:

RUNOOB python练习题3相关推荐

  1. 数组元素前移后移 RUNOOB python练习题 68

    用来练手的python练习题,原题链接: python练习实例68 题干: 有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数 代码如下: import nump ...

  2. Python打印杨辉三角形 RUNOOB python练习题61

    用来练手的python练习题,原题链接: python练习实例61 题干: 打印出杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 ...

  3. 符号 RUNOOB python练习题 51

    用来练手的python练习题,原题链接: python练习实例51 python中的 & 和 | 使用过程中,变量类型不同,这两个符号的作用也不同. 1. 对于数字变量,&\& ...

  4. python random随机数 RUNOOB python练习题50

    用来练手的python练习题,原题链接: python练习实例50. 该练习题主要包含了random模块随机数的应用,下面给出几个常用的模块内函数. 1. 生成浮点型随机小数 最简单的,就是用rand ...

  5. lambda函数 RUNOOB python练习题49

    用来练手的python练习题,原题链接python练习实例49 该练习题主要是关于lambda函数的使用方法,本文就python中的lambda函数做出一点总结. 1. lambda函数的定义与调用 ...

  6. RUNOOB python练习题47 交换两个变量值

    用来练手的python练习题,原题链接: python练习实例47 题干: 两个变量值互换 在C语言C++中我们要构造一个能交换两个变量值的函数很方便,我们可以使用指针,或者C++中的引用.那么在没有 ...

  7. RUNOOB python练习题44

    用来练手的python练习题,原题链接:python练习实例44 题干: 两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵 使用基本的List类写起来就比较麻烦,需要初始化一个3 ...

  8. RUNOOB python练习题 39 数组排序

    用来练手的python练习题,原题链接: python练习实例39 题干: 有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 这个题目用列表List的sort,append方法非 ...

  9. RUNOOB python练习题37 对一个序列的数进行排序

    用来练手的Python练习题,原题链接: python练习实例37 题干: 对10个数进行排序 在我们使用Numpy模块时,这个问题是非常简单的,下面放出降序排列和升序排列的代码: 升序排列 impo ...

  10. for else语句小tips : RUNOOB python练习题36

    用来练手的python练习题,原题链接: python练习实例36 题干: 求100之内的素数 求某个范围内的素数,和之前的一个例题其实是一样的,上次的同类例题链接如下: python练习实例12 在 ...

最新文章

  1. python基础知识整理 第一节:入门记录(包含代码与执行结果)
  2. 《数据科学家养成手册》第十一章------算法学1(穷举,分治,回溯,贪心,迭代)
  3. 百度前离职员工偶遇同门百度人,轻松通过面试,直呼放水很明显!这样真的好么?...
  4. Java常用spark的pom.xml与读取csv为rdd到最终join操作+java常用pom.xml文件
  5. Swift - 判端网络连接状态,连接类型(3G还是Wifi)
  6. 【jQuery笔记Part1】04-webstorm定义活动模板
  7. Unity ToLua 中Update的调用流程
  8. python 数组比较大小_python – 比较两个不同长度的numpy数组
  9. markdown语法中一些数学符号怎么打
  10. 破解WIFI密码之密码字典
  11. 图像分类算法DenseNet论文解读
  12. Markdown学习指南
  13. 2008服务器打不开iso文件,Windows Server无法挂载ISO文件:以下是修复它的方法
  14. Unity3D中如何制作身临其境的3d音效
  15. idea run with coverage异常
  16. 软件测试面试-为什么选择软件测试?
  17. 浏览器打开本地exe
  18. 背光模块市场现状研究分析与发展前景预测报告
  19. PR LUT预设 25个漂亮的Instagram风格抖音视频调色预设
  20. 人脑是量子计算机科学实验,新发现!人类大脑就是台量子计算机:如此神奇

热门文章

  1. java 范围搜寻要怎么弄_搜索范围
  2. Java BigInteger类| 带示例的shiftLeft()方法
  3. 十、非规则组织分析及其数学模型——锯齿形斜纹组织
  4. php的静态变量static在函数内部
  5. 关于Github的那点事儿
  6. C语言关键字 ISO/ANSI C90 C99 C11
  7. C++ STL容器值set
  8. python中的与或非_「Python基础」 While 循环语句
  9. 红黑树概念及其相关操作的实现
  10. linux网络编程(四)线程池