当前位置:首页 » 编程语言 » python求质数的算法

python求质数的算法

发布时间: 2022-02-25 09:37:38

‘壹’ 用python求1到100所有的质数

判断素数的 函数

再 用循环 遍历 输出 单个质数

‘贰’ Python求质数

如下:

importmath
defm(a,b):
ret=0
forxinrange(a,b+1):
foryinrange(2,int(math.sqrt(x))+1):
ifx%y==0:
break
else:
ret+=1
print(ret)

输入:m(3,7)

得到:3

‘叁’ 请问怎么用python函数求数字n最近的质数

fun函数有逻辑错误,改成:
##注意:最左边每个=表示一个空格
def fun(m):
====for i in range(2,m):
========if m%i==0:
============return False
====return True

‘肆’ python中如何编程求1到100之间的素数

#!/usr/bin/python

#-*- coding:UTF-8 -*-

#求素数

list=[]

i=2

for i in range (2,100):

j=2

for j in range(2,i):

if(i%j==0):

break

else:

list.append(i)

print(list)

(4)python求质数的算法扩展阅读:

python:for语句的使用方法

for循环的语法格式:

for i in range(n):#从数据类型中拿一个值赋值给i

print(i)#打印i

例如:

#for

for i in range (1,6,2):#从一开始到六之前每隔上2个数字

print(i)#结果为1,3,5

# ------------------------------------------------

s = ["man", "woman", "girl", "boy", "sister"]

for i in s:#列表s中的每个元素给i

print(i)

#-------------------------------------------------

for i in range(5):

print(i)#结果为:0,1,2,3,4

for循环实例:数字0,1,2组成一个百位数,并且数字不重复!

#for

for i in range(0,3):

for j in range(0,3):

for k in range(0,3):

if (i != 0) and (i != j) and (i != k) and (j != k):

print (i,j,k)

‘伍’ python如何算质数和

你好的!

importmath


defis_prime(n):#简化问题,先利用函数判断是否为质数
ifn==1:#=是赋值,==才是判断,切记切记
returnFalse
foriinrange(2,int(math.sqrt(n))+1):#质数判断条件,注意+1
ifn%i==0:
returnFalse
returnTrue


primes=[]
name=int(input())
foriinrange(1,name):#注意这个逗号,很容易写错!
ifis_prime(i)isTrue:#bool值用is判断
primes.append(i)
print('100以内的素数:{} 100以内素数和:{}'.format(primes,sum(primes)))

欢迎追加悬赏并采纳!

‘陆’ Python求100000以为的质数代码详解

定义变量k为0,这里没有用处,因为你下面每次遍历都重新赋值为0

定义一个列表,存储了第一个质数2,因为他是唯一一个偶数,所以单独存进去

遍历[3,100000)的所有整数,取出每一个数字之后,分别除以列表中的数字,如果某一个能被除尽,则代表它不是质数(根据任何合数都能被质数除尽的规则),break跳出里面的循环。

判断结果,如果是质数则加入列表,否则不做什么事情。

最后输出这个由质数组成的列表。

‘柒’ python中编程求1到100之间的素数有几种方法

六种。
方法一: 穷举法
方法二: 开方减"半"法
方法三:去除偶数法
方法四:使用列表法。
方法五:素数性质法
方法六: 埃拉托斯特尼筛法
拓展资料:Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于Java、C和JavaScript之上
Python已经成为最受欢迎的程序设计语言之一。自从2004年以后,python的使用率呈线性增长。Python 2于2000年10月16日发布,稳定版本是Python 2.7。Python 3于2008年12月3日发布,不完全兼容Python 2。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。
由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口,例如着名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。2018年3月,该语言作者在邮件列表上宣布Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。

‘捌’ python求素数的个数

求素数本质上的算法还是:除了1和它本身之外的数都不能整除的数。

在网上看到了一种用一行就解决的代码:

" ".join("%s" % x for x in range(2,100) if not [y for y in range(2,x) if x%y == 0])
对这段代码分解,最后一段列表生成式[y for y in range(2,x) if x%y == 0]这个就是核心算法y是从2到x-1的数,x只要能对y整除,配上前面的if not,就是,x不能被2到x-1的数整除,再看前面一段,x for x in range(2,100) 其实就是让x从2到100的取值。我们这假设题目就是求100内的素数。其实代码到这就得出结果了,只要在这些代码外面加上[]就是一个列表生成式了:

[x for x in range(2,100) if not [y for y in range(2,x) if x%y == 0]]
那么为什么还加上了" ".join("%s" % 。。。)这段代码呢?其实只是格式化美观罢了,"%s" %是一种字符串格式化的语法, 基本用法是将值插入到%s占位符的字符串中,join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
下面是结果:

'2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97'
这样解析出来是个字符串还不能分割,所以我重新改了一下:

a = (" ".join("%s" % x for x in range(2,100) if not [y for y in range(2,x) if x%y == 0])).split()
list1 = []
for item in (a):
list1.append(int(item))
print(list1)
split()把字符串解析成列表,然后给列表每一项都转化成数字。
在数学里,我们还有种判断素数的简化方法:即y的取值范围是2到x的平方根+1

import math
(" ".join("%s" % x for x in range(2,100) if not [y for y in range(2, int(math.sqrt(x))+1) if x%y == 0])).split()
下面是一种正常的算法:
import math
num = []
i = 2
for i in range(2,100):
j = 2;
for j in range(2,int(math.sqrt(i)+1)):
if (i%j==0):
break;
else:
num.append(i)
print(num)

‘玖’ python求1~100之间的所有素数之和

解题思路:需要实现两个函数,一个是判断数字是否是素数;一个是求和函数。

  • 实现函数,判断是否是素数,is_prime,具体代码如下:


def is_prime(num):

"""

判断是否是素数.

:param num:

:return:

"""

result = True

# 质数大于 1

if num > 1:

# 查看因子

for i in range(2, num):

if (num % i) == 0:

result = False

break

else:

result = True


# 如果输入的数字小于或等于 1,不是质数

else:

result = False

return result

  • 实现函数,计算数字start到end之间的所有素数之和,sum,具体代码如下:

    def sum(start, end):

"""

求闭区间[start, end]之间的素数之和.

:param start:

:param end:

:return: """

result = 0;

for i in range(start, end + 1):

if is_prime(i):

print(i)

result = result + i

return result

  • 在main函数中调用求和,代码如下:

if __name__ == '__main__':

num = 8

print(is_prime(num))

num = 5

print(is_prime(num))

print(sum(1, 5))

  • 完整 代码如下:

‘拾’ python算法:求100000以内间隔最大的一组质数的间隔。

来的有点晚了,正在写百万以内素数间隔,给你看一个MATLAB的算法作参考
希望有帮助
下面的内容是编写成m文件的,
然后运行
a=primes(2000000);
b=a(1:end-1);
c=a(2:end);
jg=c-b;
jgs=unique(jg);
cs=[];
for i=jgs
cs=[cs,sum(jg==i)];
end;
disp('间隔和间隔出现次数')
disp([jgs;cs])

热点内容
php数组计数 发布:2025-01-10 14:23:03 浏览:472
s盒算法 发布:2025-01-10 14:16:42 浏览:640
c语言用二分法求方程 发布:2025-01-10 14:15:45 浏览:218
广场舞加密 发布:2025-01-10 14:13:21 浏览:519
网络密码显示低安全性是什么意思 发布:2025-01-10 14:11:49 浏览:780
耻辱2博士保险箱密码是多少 发布:2025-01-10 14:11:41 浏览:98
如何把服务器搭在自己电脑 发布:2025-01-10 14:10:57 浏览:583
水晶可以存储 发布:2025-01-10 14:09:35 浏览:388
一级脚本号 发布:2025-01-10 14:08:06 浏览:531
知乎冷数据存储 发布:2025-01-10 14:07:10 浏览:603