大家好,我是Python领域的博主。
如果你是编程爱好者可以小编一起学习,在这里我每天都会发Python的基础知识,以及相关的代码。
如果文章有什么错误的地方,请不吝赐教。
觉得博主文章写的还错的话,请三连支持一下博主哦
我一直坚信一句话:我相信努力一定会有回报,这个回报可能很慢,但请相信,只要你坚持下去一定会更好的。
系列专栏:
类型:函数
描述
编写一个函数实现从 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()
类型:函数
描述
定义一个函数实现整数的幂运算,用以计算 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)
类型:函数
描述
一个不含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=" ")
类型:函数
描述
输入一个正整数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))
类型:函数
描述
回文素数是指一个数既是素数又是回文数。例如,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)
类型:函数
描述
反素数(逆向拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。
例如:
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的基础知识,以及相关的代码。如果觉得小编写的还不错,关注,点赞,收藏。如果有什么错误之处,请多多指教。我会虚心接受。如果有什么地方不懂,可以私信小编,我会第一时间回复您。