文章目录
一,编写Python程序实现素数处理的功能
1,程序简介
编写Python程序实现素数处理的功能,要求如下:
-
(1)从键盘输入一个整数X,编写一个函数Find(x=100),找出1—X之间的所有的素数(即质数),并将这些素数按照升序存放在列表 prime_list []中。
-
(2)在程序中编写一个函数delete_seven( prime_list),将 prime_list []中个位含有7的素数删除;
【程序要求:】
-
(1)有引导用户键盘输入的提示信息,言语要恰当;
-
(2)函数Find(x=100)实现要正确,实现列表 prime_list []中查询到的素数的输出;
-
(3)函数delete_seven( prime_list)实现正确,输出删除指定素数后的相关数据信息。
2,程序代码
# -*- coding: utf-8 -*-
"""
Created on Mon Jan 10 20:54:29 2022
Function:
@author: 小梁aixj
"""
def find(x=100):
pl = []
for m in range(2,x+1):
for k in pl:
if m % k == 0:
break
else:
pl.append(m)
return pl
def delete_seven(pl):
return [x for x in pl if x%10!=7]
x = int(input('输入一个整数:'))
prime_list = find(x)
print(prime_list)
print(delete_seven(prime_list))
3,运行结果
二,找出素数对
1,程序简介
- 任意输入一个大于10的偶数,编程找出所有和等于该偶数的素数对
以下程序实现了这一功能,请你填补空白处内容:
h = 0
def a(h):
x = 0
for j in range(2, h):
if h % j == 0:
x = 1
break
if x == 0:
return 1
n = int(input("输入任意大于10的偶数:"))
for i in range(n,n+1):
h = 0
if i % 2 == 0:
for k in range(2, i):
if a(k) == 1 and a(i - k) == 1:
________________;
2,程序代码
# -*- coding: utf-8 -*-
"""
Created on Mon Jan 10 21:42:12 2022
Function:
@author: 小梁aixj
"""
h = 0
def a(h):
x = 0
for j in range(2, h):
if h % j == 0:
x = 1
break
if x == 0:
return 1
n = int(input("输入任意大于10的偶数:"))
for i in range(n,n+1):
h = 0
if i % 2 == 0:
for k in range(2, i):
if a(k) == 1 and a(i - k) == 1:
h = 1
if h == 0:
print("%d can't" % i)
break
else:
print("%d=%d+%d" % (i, k, i - k))
break
3,运行结果
三,分隔链表
1,程序简介
-
给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。
-
你应当 保留 两个分区中每个节点的初始相对位置。
示例 1:
- 输入:head = [1,4,3,2,5,2], x = 3
- 输出:[1,2,2,4,3,5]
示例 2:
- 输入:head = [2,1], x = 2
- 输出:[1,2]
提示:
- 链表中节点的数目在范围 [0, 200] 内
- -100 <= Node.val <= 100
- -200 <= x <= 200
2,程序代码
# -*- coding: utf-8 -*-
"""
Created on Mon Jan 10 21:42:17 2022
Function: 分隔链表
@author: 小梁aixj
"""
class ListNode(object):
def __init__(self, x):
self.val = x
self.next = None
class LinkList:
def __init__(self):
self.head=None
def initList(self, data):
self.head = ListNode(data[0])
r=self.head
p = self.head
for i in data[1:]:
node = ListNode(i)
p.next = node
p = p.next
return r
def convert_list(self,head):
ret = []
if head == None:
return
node = head
while node != None:
ret.append(node.val)
node = node.next
return ret
class Solution(object):
def partition(self, head, x):
"""
:type head: ListNode
:type x: int
:rtype: ListNode
"""
if head is None:
return None
less = lesshead = None
last = pos = head
while pos is not None:
if pos.val < x:
if lesshead is None:
lesshead = pos
else:
less.next = pos
less = pos
if head == pos:
last = head = pos.next
else:
last.next = pos.next
else:
last = pos
pos = pos.next
if lesshead is not None:
less.next = head
else:
lesshead = head
return lesshead
# %%
l = LinkList()
list1 = [1,4,3,2,5,2]
l1 = l.initList(list1)
x = 3
s = Solution()
print(l.convert_list(s.partition(l1, x)))#[1,2,2,4,3,5]