使用Dvec完成以下任务,输入两个正整数m、n,完成如下功能: (每个小题至少编写一个函数) (1)求出m和n两个数之间所有“明7暗7”数,即数字中有7或能整除7,如:37、63。 (2)分别求出m! 和 n! (3)求m和n的最大公约数和最小公倍数。 (4)求出m和n两个数之间的所有回文数。1、2都是回文数。 (5)求出m和n两个数之间的所有素数。 (6)求出m和n两个数之间的所有完数。
时间: 2023-05-11 22:02:04 浏览: 202
小熊猫dev-C++上亲测可以运行,及其好用!是个一秒不差的时钟(彩色版)
好的,让我来回答你的问题。
(1) 这个任务可以通过编写一个函数来实现,函数的输入参数为m和n,输出为一个列表,包含m和n之间所有“明7暗7”数。以下是一个可能的实现:
```python
def find_ming_an_7(m, n):
result = []
for i in range(m, n+1):
if '7' in str(i) or i % 7 == 0:
result.append(i)
return result
```
(2) 同样可以编写一个函数来求阶乘,以下是一个可能的实现:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```
然后就可以分别调用这个函数来求出m!和n!了。
(3) 求最大公约数和最小公倍数也可以编写函数来实现,以下是一个可能的实现:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
def lcm(a, b):
return a * b // gcd(a, b)
```
(4) 求回文数也可以编写一个函数来实现,以下是一个可能的实现:
```python
def is_palindrome(n):
return str(n) == str(n)[::-1]
def find_palindromes(m, n):
result = []
for i in range(m, n+1):
if is_palindrome(i):
result.append(i)
return result
```
(5) 求素数也可以编写一个函数来实现,以下是一个可能的实现:
```python
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
def find_primes(m, n):
result = []
for i in range(m, n+1):
if is_prime(i):
result.append(i)
return result
```
(6) 求完数也可以编写一个函数来实现,以下是一个可能的实现:
```python
def is_perfect(n):
divisors = [1]
for i in range(2, int(n**0.5)+1):
if n % i == 0:
divisors.append(i)
if i != n // i:
divisors.append(n // i)
return sum(divisors) == n
def find_perfects(m, n):
result = []
for i in range(m, n+1):
if is_perfect(i):
result.append(i)
return result
```
希望这些回答能够帮助你完成任务!
阅读全文