首页 > 其他 > 详细

常见题目

时间:2020-04-28 14:09:42      阅读:67      评论:0      收藏:0      [点我收藏+]

求n以内的质数(素数)

from math import sqrt


def fun(n):
li = []
for i in range(2, n + 1):
count = 0
for j in range(2, int(sqrt(i) + 1)):
‘‘‘
不用除到n是因为:
假如一个数N是合数,它有一个约数a,那么有a×b=N
则a、b两个数中必有一个大于或等于根号N,一个小于或等于根号N。
因此,只要小于或等于根号N的数(1除外)不能整除N,则N一定是素数
‘‘‘
if i % j == 0:
count += 1
if count == 0:
li.append(i)
return li


def fun2(n):
‘‘‘
5及以上的自然数可以表示为 6x+5 6x 6x +1 6x+2 6x+3 6x+4 其中只有6x+5和6x+1 不被2,3整除,所以有以下:
‘‘‘
li = [2, 3]
for i in range(5, n + 1):
if i % 6 == 1 or i % 6 == 5:
li.append(i)

return li


print(fun(100))

print(fun(5))

 

单链表反转

class Node(object):
    def __init__(self, elem, next_=None):
        self.elem = elem
        self.next = next_
 
def reverseList(head):
    if head == None or head.next==None:  # 若链表为空或者仅一个数就直接返回
        return head 
    pre = None
    next = None
    while(head != None): 
        next = head.next     # 1
        head.next = pre     # 2
        pre = head      # 3
        head = next      # 4
    return pre

if __name__ == __main__:
    l1 = Node(3)    # 建立链表3->2->1->9->None
    l1.next = Node(2)
    l1.next.next = Node(1)
    l1.next.next.next = Node(9)
    l = reverseList(l1)
    print (l.elem, l.next.elem, l.next.next.elem, l.next.next.next.elem)

更多可参考:https://blog.csdn.net/gongliming_/article/details/88712221

常见题目

原文:https://www.cnblogs.com/ycg-blog/p/12793482.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!