
This Python code implements several functions using while loops to solve various number-related problems:
1. Armstrong Number: An Armstrong number is a number that is equal to the sum of its own digits each raised to the power of the number of digits. The provided Armstrong function is incomplete and contains syntax errors. A corrected version is shown below.
2. Neon Number: A neon number is a number where the sum of the digits of its square is equal to the original number. The code correctly identifies neon numbers.
3. Factorial: The code calculates the factorial of a given number.
立即学习“Python免费学习笔记(深入)”;
4. Perfect Number: A perfect number is a positive integer that is equal to the sum of its proper divisors (excluding itself). The code accurately identifies perfect numbers.
5. Prime Number: The code checks if a number is prime.
6. Prime Number List: The code is missing a function to generate a list of prime numbers within a given range.
7. Emirp Number: An emirp number is a prime number that results in a different prime number when its digits are reversed. The code correctly identifies emirp numbers.
Here’s the corrected and improved code:
# Armstrong Numberdef Armstrong(Num): num_str = str(Num) num_digits = len(num_str) sum_of_powers = 0 for digit in num_str: sum_of_powers += int(digit) ** num_digits return sum_of_powers == Num# Example usagenumber = 153if Armstrong(number): print(f"{number} is an Armstrong number")else: print(f"{number} is not an Armstrong number")# Neon NumberNum = int(input("Enter the number: "))Square = Num * NumSum = 0while Square > 0: Sum += Square % 10 Square //= 10if Sum == Num: print(f"{Num} is a Neon Number")else: print(f"{Num} is not a Neon Number")# Factorial of a NumberNum = int(input('Enter the number: '))Fact = 1i = 1while i <= Num: Fact *= i i += 1print('Factorial:', Fact)# Perfect NumberNum = int(input('Enter the number: '))i = 1sum = 0while i < Num: if Num % i == 0: sum += i i += 1if sum == Num: print(f"{Num} is a Perfect Number")else: print(f"{Num} is not a Perfect Number")# Prime Numberdef isPrimeNumber(Num): if Num <= 1: return 0 i = 2 while i * i <= Num: if Num % i == 0: return 0 i += 1 return 1# Example usage:num = int(input("Enter a number to check if it's prime: "))if isPrimeNumber(num): print(f"{num} is a prime number")else: print(f"{num} is not a prime number")# Emirp Numberdef isEmirp(Num): if not isPrimeNumber(Num): return False rev_num = int(str(Num)[::-1]) return isPrimeNumber(rev_num) and rev_num != Num# Example usagenum = int(input("Enter a number to check if it's an emirp number: "))if isEmirp(num): print(f"{num} is an Emirp number")else: print(f"{num} is not an Emirp number")
This revised code is more efficient, readable, and error-free. Remember to add a function to generate a list of prime numbers to complete the exercise set.
以上就是Python While 循环教程 #Day3的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1355162.html
微信扫一扫
支付宝扫一扫