Python语法基础-打印n以内质数

概述

今天撸一个判断质数的代码:输入正整数n,输出n以内(包括n)的质数。

思路

1、首先是编写质数判断函数。质数(大于等于2)是指只有1和它本身两个约数的正整数,使用for循环依次用1-s等数除s取余,若只有2个余数为0,则该数为质数,此时函数返回True;
2、编写主函数。提示用户输入正整数n,使用for循环分别使用1-n作为参数调用质数判断函数,根据返回值确定是否质数,是则打印该数。

代码解析

1、质数判断函数

def isPrime(s): # s为大于1的整数
    count = 0
    for i in range(1,s+1):
        if s%i == 0:
            count += 1
    if count == 2:
        return True
    else:
        return False

2、主函数

def main():
    while True:
        try:
            s = int(input('请输入一个大于1的整数:'))
            print('*'*30+'\n{}以内质数如下:'.format(s))
            for i in range(2,s+1):
                result = isPrime(i)
                if result:
                    print(i,end=' ')
            print('')
            print('*'*30)
            con = input('是否继续获取数据(输入Y或y继续,其他则退出程序):')
            if con.lower() != 'y':
                print('程序结束。')
                break
        except:
            print('输入格式错误,请重新输入。')

完整代码、效果展示

def isPrime(s): # s为大于1的整数
    count = 0
    for i in range(1,s+1):
        if s%i == 0:
            count += 1
    if count == 2: # count==2即只有1和本身2个约数 
        return True
    else:
        return False

def main():
    while True:
        try:
            s = int(input('请输入一个大于1的整数:'))
            print('*'*30+'\n{}以内质数如下:'.format(s))
            for i in range(2,s+1):
                result = isPrime(i)
                if result:
                    print(i,end=' ')
            print('')
            print('*'*30)
            con = input('是否继续获取数据(输入Y或y继续,其他则退出程序):')
            if con.lower() != 'y':
                print('程序结束。')
                break
        except:
            print('输入格式错误,请重新输入。')

if __name__ == '__main__':
    main()

在这里插入图片描述
到这里就搞定啦~是不是灰常好看、简单,那就点个赞叭!(如果有人看到的话。。。)


版权声明:本文为weixin_46001399原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。