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] 最后得到一个纯素数的列表[];