2022年8月16日 星期二

Python a040: 阿姆斯壯數

 a040: 阿姆斯壯數

#a040: 阿姆斯壯數

'''

所謂 Armstrong number 指的是一個 n 位數的整數,它的所有位數的 n 次方和恰好等於自己。


如;1634 = 1^4 + 6^4 + 3^4 + 4^4 = 1 + 1296 + 81 + 256 = 1634


請依題目需求在一定範圍內找出該範圍內的所有 armstrong numbers.


輸入說明

輸入共一行包含兩個數字n, m(n<m, n>0, m<=1000000),

代表所有尋找 armstrong number 的範圍

輸出說明

將所有範圍內的 armstrong number 依序由小到大輸出,如果沒有找到請輸出 none.

範例輸入 #1

100 999

範例輸出 #1

153 370 371 407


範例輸入 #2

10 99

範例輸出 #2

none


'''

def Armstrong(originalNumber):

    number=originalNumber

    result=0

    while (originalNumber != 0):

        remainder = int(originalNumber%10)

        result = int (result) + int (remainder*remainder*remainder)

        originalNumber = int(originalNumber/10)


 

    if(result == number) :

        #print('%d 是 Armstrong 数' %(number))

        a=1

        return (a)

    else:

        #print('%d 不是 Armstrong 数'  %(number))

        a=0

        return (a)


print('求在一定範圍內找出該範圍內的所有 armstrong numbers.')

n,m = map(int,input('輸入2個數字n, m(n<m, n>0, m<=1000000) --->').split())


for i in range (n,m):

    res=Armstrong(i)

    if (res==1):

        print(i ,end=' ')

        #print('Yes')

    else:

        #print('No')

        print(end='')



>>> %Run a040.py

求在一定範圍內找出該範圍內的所有 armstrong numbers.

輸入2個數字n, m(n<m, n>0, m<=1000000) --->10 200

153 

>>> %Run a040.py

求在一定範圍內找出該範圍內的所有 armstrong numbers.

輸入2個數字n, m(n<m, n>0, m<=1000000) --->100 999

153 370 371 407 

>>> %Run a040.py

求在一定範圍內找出該範圍內的所有 armstrong numbers.

輸入2個數字n, m(n<m, n>0, m<=1000000) --->10 99

>>> 

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...