大家好,我是Python领域的博主。
如果你是编程爱好者可以小编一起学习,在这里我每天都会发Python的基础知识,以及相关的代码。
如果文章有什么错误的地方,请不吝赐教。
觉得博主文章写的还错的话,请三连支持一下博主哦
我一直坚信一句话:我相信努力一定会有回报,这个回报可能很慢,但请相信,只要你坚持下去一定会更好的。
系列专栏:
1.累加函数
类型:函数
描述
编写一个函数实现从 1 到 N 共 N 个数的累加
输入格式
一个正整数N
输出格式
计算结果
示例 1
输入:100
输出:5050
def count():
a,N=0,eval(input())
for i in range(N+1):
a=a+i
print(a)
count()
3.自定义幂函数
类型:函数
描述
定义一个函数实现整数的幂运算,用以计算 x 的 n 次方。
输入格式
在一行内输入两个非负整数 x 和 n,数字间用空格分隔。
输出格式
x 的 n 次幂的运算结果
示例
输入:2 3
输出:8
x,n=map(int,input().split(" "))
def power(x,n):
print(x**n)
power(x,n)
3.编写函数输出自除数
类型:函数
描述
一个不含0的数,如果它能被它的每一位除尽,则它是一个自除数。例如128是一个自除数,因为128能被1、2、8整除。编写函数selfDivisor(num)判断num是否为自除数,使用该函数输出不大于N的所有自除数。
(注意,含有数字0的数不是自除数)
输入格式
输入为一行,一个正整数N(N>=1)。
输出格式
输出为一行,是不大于N的所有自除数,每个数后面有一个空格。
示例 1
输入:1
输出:1
示例 2
输入:22
输出:1 2 3 4 5 6 7 8 9 11 12 15 22
def selfDivisor(n):
if '0' in str(n):
return False
for c in str(n): #对数字num中的每位数字进行遍历
if int(n) % int(c)!=0: #测试num的每一位是否是num的因子
return False
else: #如果for遍历顺利结束,未遇到return,则执行else子句,返回True
return True
N = int(input())
for i in range(1,N+1):
if selfDivisor(i):
print(i,end=" ")
4.素数求和
类型:函数
描述
输入一个正整数n,统计从[0,n]之间的最大的10个素数之和。本题保证测试用例至少有10个满足条件的素数。
例如:输入31 ,应求得3,5,7,11,13,17,19,23,29,31之和。
本题要求使用自定义函数完成,代码框架参考如下:
def isprime(n): #判断素数函数
......
def f(n): #找小于n的素数并求和
......
......
p=int(input())
print(f(p))
示例 1
输入:31
输出:158
def isprime(n):
for i in range(2,int(n**0.5)+1):
if n%i==0:
return False
else:
return True
def f(n):
s,count=0,0
for i in range(n,1,-1):
if isprime(i):
s=s+i
count+=1
if count==10:
return s
p=int(input())
print(f(p))
5.回文素数
类型:函数
描述
回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。 用户输入一个正整数 n , 请你在一行内输出从小到大排列的的前n个回文素数,数字后面用一个空格进行分隔。
输入格式
输入一个正整数
输出格式
符合要求的回文素数
示例
输入:10
输出:2 3 5 7 11 101 131 151 181 191
def is_prime(n):
"""判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False
减小判定区间,减少循环次数,提升效率。
"""
if n < 2:
return False # 0、1、负数以及偶数都不是素数
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0: # 能被2到其根号n之间的整数整除的数不是素数
return False
else: #else要和for对齐
return True # for循环正常结束,未遇到return的数是素数
def palindromic(num):
"""接收一个数字为参数,判定其是否为回文数,返回布尔值。"""
if str(num) == str(num)[::-1]:
return True
else:
return False
def output_prime(num):
"""接收一个正整数num为参数,在一行中从小到大输出前num个回文素数。
函数无返回值
"""
i = 2 # 从最小的素数2开始测试
count = 0 # 计数器置0
while True: # 无限循环
if palindromic(i) and is_prime(i): # 先判断回文再判断素数,效率高
print(i, end=' ') # i为回文素数时输出i,输出后不换行
count = count + 1 # 每发现一个回文素数计数增加1
if count == num: # 如果找到回文素数数量与要求数量相同时
break # 结束循环
i = i + 1 # 测试下一个数字
if __name__ == "__main__":
n = int(input())
output_prime(n)
6.反素数
类型:函数
描述
反素数(逆向拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。
例如:
13和31都是素数,且13和31都不是回文数,所以,13和31是反素数。
输入一个正整数 n , 请在同一行输出从小到大排列的的前n个反素数,每个数字后面加一个空格。
输入格式
输入一个正整数
输出格式
符合条件的反素数
示例
输入:
10
输出:
13 17 31 37 71 73 79 97 107 113
def noisprime(num):
if num<2:
return False
for i in range(2,int(num**0.5)+1):
if num%i==0:
return False
else:
return True
def p(num):
if str(num)==str(num)[::-1]:
return True
def reverse(num):
return int(str(num)[::-1])
def fan(num):
i=2
count=0
while True:
if noisprime(i) and not p(i) and noisprime(reverse(i)):
print(i,end=" ")
count+=1
if num==count:
break
i+=1
if __name__ =="__main__":
n=int(input())
fan(n)
或
'''def is_prime(n):
if n <= 1: # 小于2的数字单独处理
return True
for i in range(2, int(n ** (1 / 2) + 1)): # 根据素数定义判定是否是素数,是素数返回1
if n % i == 0:
return False
return True
def palindromic(num):
"""接收一个数字为参数,判定其是否为回文数,返回布尔值。"""
return str(num) == str(num)[::-1]
def reverse_num(num):
"""接收一个整数,返回其逆序字符串对应的整数"""
return int(str(num)[::-1])
def reverse_prime(number):
i = 2
count = 0
while True:
if not palindromic(i) and is_prime(i) and is_prime(reverse_num(i)):
print(i, end=' ') # i为回文素数时输出i,输出后不换行
count = count + 1
if count == number:
break
i = i + 1
if __name__ == "__main__":
n = int(input())
reverse_prime(n)'''
小编畅谈:
小编发布的作品都是适合初学者学习,如果你是初学者,可以和小编一起学习,在这里我每天都会发Python的基础知识,以及相关的代码。如果觉得小编写的还不错,关注,点赞,收藏。如果有什么错误之处,请多多指教。我会虚心接受。如果有什么地方不懂,可以私信小编,我会第一时间回复您。