python编写一个函数.判断一个数是不是素数,然后调用该函数输出100以内的素数

1、打开pycharm,点击file,点击new,新建一个空白的pyrthon文件:

2、这里开始编写判断素数的代码,判断素数的上限最准确的应该使用平方根取整加一,此处用到两层循环,第一层遍历0到100的数,第二层循环判断满足条件的素数。这里有一个else要注意是和for对齐而不是if对齐,如果和if对齐只要不能被2整除就会被添加到列表中了,而且会多次添加:

3、右键点击鼠标,点击“rundemo”,运行编写好的python文件,在下方的控制台就可以看见输出后结果:

python输入一个大于1的正整数,判断其是否为素数

先把表示数字的字符串转换为整数型。然后从二开始一直到根号N。进行试除。如果其中有某个数能够被整除。说明这个N不是一个素数。否则就说明N是一个素数。

C语言编程输入一个数判断是否为素数(质数)C语言编程:输入一个数

  楼上的算法可以简化一下:

#include

#include

#include

#include

int main(void)

int n = 0;

printf("请输入一个正整数\n");

scanf("%d", &n);

if (n < 0) {

printf("输入为负整数,取绝对值求解\n");

n = -n;

}//end if

if (n == 0 || n == 1 ) {

printf("0和1不属于质数问题讨论范围。

C语言判断m是否素数判断m是否素数

#include

main()

int m,i,k;

scanf("%d",&m);

k=sqrt(m);

for(i=2;i=k+1)

printf("%d is a prime number\n",m);

else

printf("%d is not a prime number\n",m);

如何用python判断是否为质数

# -*- coding:cp936 -*-

from math import sqrt

from math import trunc

def prime0(n):

if n==1:

return False

if (n==2)|(n==3):

return True

m=trunc(sqrt(n))

f=True

for i in range(2,m+1):

if (1.0*n/i)==trunc(1.0*n/i):

f=False

break

return f

for i in range(1,100):

if prime0(i):

print i,prime0(i)# -*- coding: utf-8 -*-

# filename : test.py

# author by : www.runoob.com

# python 程序用于检测用户输入的数字是否为质数

# 用户输入数字

num = int(input("请输入一个数字: "))

# 质数大于 1

if num > 1:

# 查看因子

for i in range(2,num):

if (num % i) == 0:

print(num,"不是质数")

print(i,"乘于",num//i,"是",num)

break

else:

print(num,"是质数")

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

else:

print(num,"不是质数")

Python 素数

i = 2  

while i <= 100:

j = 2

while j <= i / j:#难点1

if i % j == 0:

break#如果提前提出,j的值<= i / j

j = j + 1

if j > i / j:#难点2

print(i, end=' ')

i = i + 1其实代码每一句都很简单,就不一一注释了,其实难的是思路。主要是两个地方对J变量的判断

A:while循环,一种常见的是j<=sqrt(i),用这个数的开方(根号)来指定搜索上限,这是因为:

一个数若可以进行因数分解,那么分解时得到的两个数一定是一个小于等于sqrt(n),一个大于等于sqrt(n)——所以只要搜索到根号的地方就可以了,提高了速度。

用i/j的方式是sqrt的一种变种,j<=sqrt(i),由于i>j>1,两边平方后不等式仍然成立

j^2<=i两边除以j就变成了j <= i / j

B:第二处,根据j的数值来判断i是否是素数。当在循环中找到i % j == 0的情况,循环会提前退出,导致j i / j# 用户输入数字

num = int(input("请输入一个数字: "))

# 质数大于 1

if num > 1:

# 查看因子

for i in range(2,num):

if (num % i) == 0:

print(num,"不是质数")

print(i,"乘于",num//i,"是",num)

break

else:

print(num,"是质数")

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

else:

print(num,"不是质数")

素数也叫质数i用来历遍2到100的数,j表示从2到根号i的数。第一个循环限制i的范围,第二个循环限制j的范围。第一个判断i不能整除j,j自增1继续判断直到超过根号i。第二个判断如果是整除退出的必然不满足,所以不打印,非整除退出比满足,则打印比为素数。最后i自增not 0表示非0 返回真,0返回假 print reduce( lambda l,y: #递减的操作函数 (not 0 in map(lambda x:y % x, l)) and (l+[y]) or l, #l是一个列表[], 结果l中后加入的数不能被前数整除,被整除则不添加后数 xrange(2,1000), #范围[2,1000) [] ) 过程是: 测试到6, 就把6依次整除之前的l=[2,3,5] ,除2余0,就放弃6。l仍是[2,3,5] 测试到7, 就把7依次整除之前的l=[2,3,5] ,除2都不余0,加入6。l变成[2,3,5,7] 最后得到一个纯素数的列表[];