2019年6月28日 星期五

Python 練習-02

一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
這題一開始繞不出來,以為只有一個解,運算式如下

Y^2=X+100
Z^2=X+100+168.......由於X+100=Y^2 ...所以可以寫成

Z^2=Y^2+168,所以當等式相等時就可以算出X


for y in range(1,50):
    for z in range(1,50):
        if (y**2+168==z**2):
            x=y**2-100
            print (f'X= {x} ,Y= {y} , Z= {z}')

#***************執行結果**********************

X= -99 ,Y= 1 , Z= 13
X= 21 ,Y= 11 , Z= 17
X= 261 ,Y= 19 , Z= 23
X= 1581 ,Y= 41 , Z= 43


質因數分解,是將一個正整數寫成幾個因數的乘積。
例如: 45 = 3,3,5

比較單純的想法是
1. 找出能把 X 整除的數
2. 把整除後的商,當作下一個被除數,重複第一個步驟,直到被除數等於1 為止


temp=[]
temp2=int(input('請輸入一個正整數 : '))
x=temp2
while True:
    if (x==1) :
        break
    for i in range(2,x+1,1):
        if (x%i==0):
            x=int(x/i)
            temp.append(i)
            break

print(f'{temp2} 質因數分解 = {temp}')

#***************執行結果**********************

請輸入一個正整數 : 90
90 質因數分解 = [2, 3, 3, 5]


求質數,質數就是除了1和該數自身外,無法被其他自然數整除的數
所以只要統計被整除的次數,就可以判斷是否為質數(不包含1,只能被整除1次的數)


for index in range(2,10,1):
temp=0
for x in range(2,index+1,1):
if(index%x==0):
temp=temp+1
if (temp<2 font="">
print(index)

#***************執行結果**********************

2
3
5
7



沒有留言: