淮南建设网站,大连网站的建设,200平米火锅店装修费用,键盘事件对网站交互本文大约 1600 字#xff0c;阅读大约需要 8分钟 练习题 3 的网址#xff1a;
http://www.runoob.com/python/python-exercise-example3.html Example-3 完全平方数 题目#xff1a;一个整数#xff0c;它加上100后是一个完全平方数#xff0c;再加上168又是一个完全平方… 本文大约 1600 字阅读大约需要 8分钟 练习题 3 的网址
http://www.runoob.com/python/python-exercise-example3.html Example-3 完全平方数 题目一个整数它加上100后是一个完全平方数再加上168又是一个完全平方数请问该数是多少 思路
首先我们可以假设这个整数是x那么根据题目有
x100 m**2 (1)
x100168 n**2 (2)m, n都是正整数接着就是先根据求解一元二次方程组的做法可以得到
n**2 - n**2 168 (3)利用平方差分解上式有(n-m)(nm)168这个时候我们再做一个变换
m n i (4)
n - m j (5)
i * j 168 (6)这个变换其实只是再设置两个变量i,j并且根据它们两者相乘是 168这是一个偶数由于两个数相乘是偶数有两种情况两者都是偶数或者一个偶数和一个奇数然后再求解(4)和(5)有
n (i j) / 2 (7)
m (i - j) / 2 (8)根据(7)式子ij必须是偶数这样才可以被 2 整除得到正整数n这种情况下结合(4)和(5)可以推导得到i,j都是大于等于 2 的偶数又根据(6)可以推导到i,j的范围是
1 j i 85这里是假设了i j的情况因为不存在一个偶数的平方就是168所以假设ij。
代码实现
第一种实现
def perfect_square():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)第二种实现是网上大神的解法参考文章
Python练习题 003完全平方数ZH奶酪编程语言入门经典100例【Python版】
这种实现其实就是在分析过程中只推导到m,n部分即(3)式的部分然后直接根据这个公式和范围来求解这个时候m,n的范围就是(1,169)。
这是一个应用列表推导式的解法
def perfect_square2():列表推导式:return:[print(m**2-100, end,) for m in range(1, 169) for n in range(1, 169) if (n**2 - m**2) 168]def perfect_square2_loop():for 循环形式:return:for m in range(1, 169):for n in range(1, 169):if (n ** 2 - m ** 2) 168:print(m ** 2 - 100, end,)
输出结果都是
-99,21,261,1581,源代码在
https://github.com/ccc013/CodesNotes/blob/master/Python_100_examples/example3.py
或者点击原文也可以查看源代码。 欢迎关注我的微信公众号–机器学习与计算机视觉或者扫描下方的二维码大家一起交流学习和进步 往期精彩推荐
Python-100 练习系列
Python-100 | 练习题 01 列表推导式Python-100 练习题 02
学习笔记
机器学习入门系列1–机器学习概览[GAN学习系列] 初识GAN[GAN学习系列2] GAN的起源[GAN学习系列3]采用深度学习和 TensorFlow 实现图片修复(上
数学学习笔记
程序员的数学笔记1–进制转换程序员的数学笔记2–余数程序员的数学笔记3–迭代法
Github项目 资源教程推荐
[Github 项目推荐] 一个更好阅读和查找论文的网站[资源分享] TensorFlow 官方中文版教程来了必读的AI和深度学习博客[教程]一份简单易懂的 TensorFlow 教程[资源]推荐一些Python书籍和教程入门和进阶的都有