1、(2018-腾讯-在线编程题)
- 题目描述:
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输
入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
# [2,3,5,7]
- 输入描述:
输入包括一个整数n,(3 ≤ n < 1000)
- 输出描述:
输出对数
- 示例1 :
输入:
10
输出:
2
思路:
-
先写出判断素数的函数,并且找出所有的素数然后存到一个列表里
-
判断哪两个质数之和等于输入的数字,需要注意的是,有的两个一样的质数之和如果等于输入的数字,就会计算两遍
def isprime(num): #该函数的作用是,判断一个数字是否是质数
for i in range(2, num):
if num % i == 0:
return False
elif num == 2:
return True
else:
return True
list = [i for i in range(2, 1000) if isprime(i)] #将1-1000的质数存入到列表里
n = int(input("输入:"))
num = 0
for i in list:
if n - i in list and i <= n - i: #进行题目的判断
num += 1 #根据质数1+质数2=输入的数 可以想到两种算法
print('输出:') #在这里我用了最简单的一种,就是判断number-质数的值
print(num) #是否在列表里存在,此时只需要一个循环
2、列表的字符串的大写改成小写,不是字符串的去掉
li = ['hello','Wrold',16,17,18,12.3,False,'Apple']
思路:先进行判断,所有的元素是否是字符串,然后进行小写的转换
s = ['hello','Wrold',16,17,18,12.3,False,'Apple']
s1=[ i.lower() for i in s if isinstance(i,str)]
#instance(i,str) 用来判断i是否是字符串,是的话返回True
print(s1)
3、找出/var/log目录中,所有以.log结尾的文件名或者目录名
思路:调用os模块,列出目录下的文件名字,然后用endswith找出以.log结尾的文件
import os
print([filename for filename in os.listdir('/var/log') if filename.endswith('.log')])
4、判断2-num之间有多少个质数
num=int(input("请输入数字:"))
def find(num):
for i in range(2,num):
if num%2==0:
return False
else:
return True
print(len([ i for i in range(2,num+1) if (find(i))]))
#用len计算列表的长度