RUNOOB python练习题3

用来练手的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) = 168m2n2=(m+n)(mn)=168

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

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

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

6、由于 i∗j=168,j>=2i * j = 168, j >=2ij=168j>=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)

通过分析题干我们最终确定了遍历的范围,实现了穷举,输出如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386972.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用git将项目上传到github(最简单方法)

使用git将项目上传到github&#xff08;最简单方法&#xff09; 首先你需要一个github账号&#xff0c;所有还没有的话先去注册吧&#xff01; https://github.com/ 我们使用git需要先安装git工具&#xff0c;这里给出下载地址&#xff0c;下载后一路直接安装即可&#xff1…

RUNOOB python练习题4

用来练手的python习题其四&#xff0c; 原题链接: python练习实例4 题干: 输入某年某月某日&#xff0c;判断这一天是这一年的第几天&#xff1f; 这个题目比较简单&#xff0c;只需要注意闰年和非闰年的区别就可以了。我这里使用numpy矩阵存储每个月的天数&#xff0c;之后用…

GitHub入门:如何上传与下载工程?

由于经常要在家写代码&#xff0c;所以需要有个能够方便访问代码管理工具。最近尝试了一下GitHub。经过了一翻纠结之后&#xff0c;基本上掌握了他的使用方式。 要使用GitHub需要首先在其网站上进行注册。其官方网站是https://github.com/。注册的流程在这里就不多少了&#x…

如何解决PIP命令不可用

今天想用PIP装一个python包&#xff0c;发现PIP报错&#xff0c;不是内部或外部命令。。。 遇事百度&#xff0c;有两种说法&#xff0c;一&#xff0c;没安装包&#xff0c;不管那么多命令执行了再说 在命令行输入&#xff1a;python -m ensurepip 将pip.exe文件下载下来 再pi…

RUNOOB python练习题5

用来练手的python 练习题其五&#xff0c;原链接 : python练习实例5 题干 : 输入三个整数x,y,z&#xff0c;请把这三个数由小到大输出。 又是非常简单的排序算法&#xff0c;只要使用numpy矩阵的排序方法或者使用python list的排序算法就可以轻松解决。 源代码如下 : import …

初步使用github,并上传下载文件

使用GitHub需要先注册GitHub的账号,登陆进去 然后开始创建项目 start a project 创建完成,开始生成公私钥,可以不必每次都要输密码 ssh-keygen -t rsa -C "mghxy123163.com" //填写email地址&#xff0c;然后一直“回车”ok 然后把公钥导入GitHub中的key里面去,也…

NOIP2000提高组复赛C 单词接龙

题目链接&#xff1a;https://ac.nowcoder.com/acm/contest/248/C 题目大意&#xff1a; 略 分析&#xff1a; 注意点&#xff1a;1.前缀和后缀的公共部分应该选最短的。2.如果两个字符串前缀和后缀的公共部分恰好是其中一个字符串&#xff0c;那么这两个字符串不能合并。 代码…

右键Git Bash Here不见了怎么办,手把手教你还原!

第一步&#xff0c;window R&#xff0c;输入regedit回车进入注册表 依次进入HKEY_CLASSES_ROOT —-》 Directory —-》Background —-》 shell 右键点击shell&#xff0c;选择新建&#xff0c;然后选择项&#xff0c;命名为 Git Bash Here&#xff0c;成功后进入桌面右键发现…

RUNOOB python练习题6 斐波那契数列

用来练手的python 练习题其六&#xff0c;原链接 : python练习实例6 题干 : 斐波那契数列 斐波那契数列可以说是很好的递归理解工具了&#xff0c;这里就用递归实现一下斐波那契数列。 源代码如下: # 返回fibonacci数列中某一项的数值 def Fibonacci(n):if n 1:return 1eli…

github windows客户端

方法/步骤 1 1. 首先到官网下载Github客户端 2 2. 点击上图红框的按钮开始下载客户端。 3 3. 双击下载好的客户端&#xff0c;开始安装。 4 双击之后出现一个框 5 之后等待一段时间&#xff0c;出现一个在线下载界面 6 4. 在线下载完成之后开始进行安装。安装完成之后…

赋值语句 变量的地址相关 : RUNOOB python练习题7

用来练手的python 练习题&#xff0c;原链接 : python练习实例7 练习实例7非常的简单也有意思。题干 : 将一个列表的数据复制到另一个列表中。 完成这个操作的代码非常简单&#xff0c;即使是我这样的初学者应该也是一语道破&#xff0c;赋值语句嘛。但这里我们就列举出几种不…

Web标准的概念及组成

一周更新两个或三个关于web前端的知识点&#xff0c;欢迎感兴趣的小伙伴们一起学习讨论1、WEB标准是网页制作的标准&#xff0c;它不是一个标准&#xff0c;它是根据网页的不同组成部分生成的一系列标准。这些标准大部分由W3C起草发布&#xff0c;也有部分标准由ECMA起草发布。…

Fiddler简介及安装和HTTPS的解决

Fiddler简介&#xff1a; 一个很强大的抓包工具&#xff0c;类似Charles 1.安装&#xff1a; Filddler官网&#xff1a;点击打开链接 我安装的是filddler4&#xff1a;点击打开链接 直接下载文件&#xff0c;然后一路下一步就可以了 1.下载文件&#xff1a; 2.安装文件一…

RUNOOB python练习题8 numpy矩阵的索引及遍历

用来练手的python 练习题&#xff0c;原链接 : python练习实例8 题干: 输出 9*9 乘法口诀表。 import numpy as nptable np.zeros((9,9)) for i in range(table.shape[0]):for j in range(table.shape[1]):table[i][j] (i1) * (j1)# 查询九九乘法表 def affichage_table(a,…

ddt源码修改:HtmlTestRunner报告依据接口名显示用例名字

做接口测试&#xff0c;使用unittestddtexcel ,使用HtmlTetstRunner来生成测试用例。 查看报告的时候 用例名称都是 test_api_1 、test_api_2 、test_api_3 的显示 &#xff0c;看的不爽&#xff0c;也不明确&#xff0c;如果是test_api_登陆成功 、 test_api_密码错误 …

Fiddler抓取https设置及其原理

Fiddler抓取https设置及其原理 2018-02-02 目录 1 HTTPS握手过程 2 Fiddler抓取HTTPS过程 3 Fiddler抓取HTTPS设置参考 数字签名是什么&#xff1f; 1 HTTPS握手过程 HTTPS 并非是应用层的一种新协议。只是 HTTP 通信接口部分用 SSL &#xff08;安全套接字层&#xff09;和…

RUNOOB python练习题10

用来练手的python 练习题&#xff0c;原链接 : python练习实例9 题干 : 暂停两秒输出&#xff0c;并格式化当前时间。 import time,datetimeTIME datetime.datetime.now() print(TIME.strftime("%Y.%m.%d %H-%M-%S")) time.sleep(2) TIME datetime.datetime.now(…

HTTPS连接过程以及中间人攻击劫持

HTTPS连接过程以及中间人攻击劫持 目前很多应用都用webview加载H5页面&#xff0c;如果服务端采用的是可信CA颁发的证书&#xff0c;在 webView.setWebViewClient(webviewClient) 时重载 WebViewClient的onReceivedSslError() &#xff0c;如果出现证书错误&#xff0c;直接调…

RUNOOB python练习题12 找素数问题

用来练手的python 练习题&#xff0c;原链接 : python练习实例12 题干 : 判断101-200之间有多少个素数&#xff0c;并输出所有素数 源代码如下: import numpy as np bound np.arange(101,201,1) result np.array([]) for k in bound:for i in range(k):# 如果k存在不是1或…

Linux: centOS6.5 RabbitMQ

在大多数大公司&#xff0c;像应用服务器软件的安装、部署都是运维的事情&#xff0c;其实自己去尝试部署一下&#xff0c;也是有收获的。 有机会正好尝试了Linux下的rabbitMq安装过程&#xff0c;做了记录&#xff0c;希望有用到的人可以做下参考。 安装环境&#xff1a; Li…