猫史档案馆


【Python作品分享】质数表

用户:吐槽核辐射碎片吐槽核辐射碎片查看:7 回复:4 评论:7 创建时间:2021-02-16T20:15:08


【作品展示】

center_image

 

【作品介绍】

用于计算质数

 

【作品源代码】

import os
Max = int(input('请输入所需的最大值:'))
boolean_list = []
prime_number_list = []
num = 1
a = 1
b = 1
file = open(f'{Max}以内的质数表.txt', 'w')
for num in range(Max):
    for b in range(Max):
        for a in range(Max):
            if a == 1 or b == 1:
                pass
            elif a*b == num:
                boolean_list.append(False)
            elif a*b != num:
                boolean_list.append(True)
    if False in boolean_list:
        pass
    else:
        print(num)
        prime_number_list.append(num)
    boolean_list = []
for i in prime_number_list:
    file.write(str(i))
    file.write('\n')
os.startfile(f'{Max}以内的质数表.txt')
file.close
while True:
    pass

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
虐心工作间虐心工作间

你的程序运行简直太快了,我输入100程序跑了一分钟emotion_doge

点赞0


评论


虐心工作间虐心工作间

import math


def p(x):

    number = x
    n = 0
    for i in range(2, round(math.sqrt(number)) + 1):
        if number % i == 0:
            return False
    return True

while(True):
    try:
        a = int(input('请输入素数查询范围的初始:'))
        b = int(input('请输入素数查询范围的结束:'))
    except:
        print('输入错误!')
    else:
        L = []

        for i in range(a, (b + 1)):
            if p(i):
                L.append(i)

        print('素数有', L)
        enter = input('是否输出?输出请输入任意内容并回车……')
        if enter:
            Ld = []
            for item in L:
                Ld.append(str(item))
            file = open('p.txt', 'w')
            file.write('\n'.join(Ld))
            file.close()

 

 

点赞0


评论


伴雪纷飞伴雪纷飞

@虐心工作间 你那太长了,又要import math,如果别人用的是网页版的呢?

看我的↓

lower = int(input("输入区间最小值: "))
upper = int(input("输入区间最大值: "))

for num in range(lower, upper + 1):
    # 质数大于 1
    if num > 1:
        for i in range(2, num):
            if (num % i) == 0:
                break
        else:
            print(num)

点赞0


评论


WA掘机WA掘机

我来一波C++:

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int n;
bool a[1000000000],flag=1;
int main(){
	freopen("zhishq.txt","r",stdin);
	cin>>n;
	freopen("zhishu.txt","w",stdout);
	for(int i=2;i<=sqrt(n);i++){
		if(a[i]==0){
			for(int j=2;j<=sqrt(i);j++){
				if(i%j==0){
					flag=0;
					break;
				}
			}
		}
		if(flag==1){
			for(int j=i*2;j<=n;j+=i)
				a[j]=1;	
		}else
			a[i]=1;
		flag=1;
	}
	for(int i=2;i<=n;i++){
		if(a[i]==0)
			printf("%d\n",i);
	}
	return 0;
}

这个1000万输入,3-5s跑完

点赞0


评论