素数可视化(代码可复制)

一、要看的人

        1.想踩我的(求你了,别踩了)             (・Д・;)

        2.正在学习代码的(最好认真看)

        3.随便打发时间的(想看就看,不想看就不看那

种)

        4.过路的(请点个赞)  o( ̄▽ ̄)d 

二、分析一下

        建立num变量,将num赋值成1将这个数每次加一,使用找素数的方法把它从2除到它这个数本身,如果不是素数的数就向前走一步,如果是素数就右转90度,继续找。

        再建立一个退出条件,设立画图窗口为800*800,再找到turtle现在的位置,如果turtle的x或y=窗口的x或y,退出循环。

三、开敲

首先,引入turtle和math中的sqrt包

import turtle as t
from math import sqrt

然后判断是否为素数

import turtle as t
from math import sqrt
# 判断是否为素数
def if_prime(num):
    for i in range(2,round(sqrt(num))+1):
         # 能整除,非素数
        if num % i == 0:
            return False
    return True

接着设定窗口

t.setup(800,800)#根据自己的电脑调整此参数,太大会看不见
t.screensize(100,100,'black')
minxv=-50
minyv=-80
maxxy=t.window_width()+minxv
maxyv=t.window_height()+minyv
t.setworldcoordinates(minxv,minyv,maxxy,maxyv)

然后......干一些没有用的事:

t.speed(0)
t.Turtle().screen.delay(0)
t.pencolor('white')
t.pensize(1)
t.setheading(-90)
t.hideturtle()
num=0
t.pd()
run_flag= True

请关注一下上面那个run_flag,下面会用到。

然后进入一个选择性循环

while run_flag:
    t.fd(1)
    num+=1
    xcor=round(t.xcor())
    ycor=round(t.ycor())
    if if_prime(num):遇到素数就右转90度
        t.right(90)
        keyIn=(xcor,ycor)
        print('{0},-->{1}'.format(keyIn,num))
            
    if xcor>maxxy or xcor < minxv or ycor>maxyv or ycor < minyv:
        run_flag=False  #碰到边缘就停止循环

好了,这次的代码分享就到这里,下期再见

源码链接:百度网盘地址 提取码: 5zn8

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值