亲宝软件园·资讯

展开

Python 完全平方数

是梦吧,是你吧! 人气:3

1 案例

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

2 分析

由题意我们可以设该数为x ,加100后得到的完全平方数为y^{2}再加168后得到的完全平方数为

则:

得:

可以利用的条件: 

3 Python实现

(1)方法一:

假设这个数字是:x
条件一:x+100是一个完全平方数
条件二:x+100+168也是一个完全平方数

import math
for i in range(-100,2000):
    if (int(math.sqrt(i+100)))**2 == i+100:
        if int(math.sqrt(i+268))**2 == i+268:
            print(i,end=' ')

#================结果================

-99 21 261 1581
Process finished with exit code 0

(2)方法二 

其实可以采用逆向思维:我们可以分别假设:

(1)x+100开平方后的数字是:a

(2)x+100+168开平方后后的数字是:b
那么的话就存在如此关系:

1):b^{2}-a^{2}=168

2):

for%20i%20in%20range(0,100): %20%20%20%20for%20j%20in%20range(0,100): %20%20%20%20%20%20%20%20if%20i**2%20-%20j**2%20==%20168: %20%20%20%20%20%20%20%20%20%20%20%20print("数字是:{}%20;i%20=%20{}%20;j%20=%20{}".format(j**2%20-%20100,i,j))

#====================结果========================

数字是:-99%20;i%20=%2013%20;j%20=%201数字是:21%20;i%20=%2017%20;j%20=%2011数字是:261%20;i%20=%2023%20;j%20=%2019数字是:1581%20;i%20=%2043%20;j%20=%2041

Process%20finished%20with%20exit%20code%200

4%20C语言实现

#include%20"stdio.h" #include%20"math.h" %20 int%20main(void) { int%20x%20=%20-100; double%20y%20=%200,%20z%20=%200; do%20{ y%20=%20sqrt(x%20+%20100); z%20=%20sqrt(x%20+%20100%20+%20168); if%20(y%20==%20(int)y%20&&%20z%20==%20(int)z) printf("%d\n",%20x); x++; }%20while%20((z%20+%20y)%20>%200%20&&%20(z%20+%20y)%20<=%20168); %20 %20 return%200; }

加载全部内容

相关教程
猜你喜欢
用户评论