2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 质数(素数) 分解质因数

质数(素数) 分解质因数

时间:2019-02-02 11:23:17

相关推荐

质数(素数) 分解质因数

很多逻辑思维的题不会,一方面是逻辑思维确实需要锻炼,另一方面是这方面可能涉及到的数学知识早就忘完了。

质数,素数,一个东西,除了1和它自身外,不能被其他自然数整除的数叫做质数(素数)。1不是质数。2是最小的质数(既是质数又是偶数),除了2之外,质数都是奇数

合数:指在大于1的整数中除了能被1和本身整除外,还能被其他数(0除外)整除的数。4是最小的合数。

因数:约数,整数a除以整数b(b≠0) 的商正好是整数而没有余数,我们就说b是a的因数。

分解质因数:合数都可以写成几个质数相乘的形式,分解质因数只针对合数。

判断质数方法:

用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

为什么除到sqrt(这个数)就可以了呢?因为如果能被整除的,肯定一个小于sqrt(这个数),另外一个大于,所以只检查一半就可以了。

题目:判断101-200之间有多少个素数,并输出所有素数。

import mathleap = 1count = 0for i in range(101,201):for j in range(2, int(math.sqrt(i))+1):#这里加1是因为:比如9的话,sqrt(9)=3,必须加1才能把3算进去,否则9就判断错了if i%j == 0:leap = 0#可以整除的话标志位改为0break# 标志位为1,则质数个数加1if leap == 1:count += 1print(i)leap = 1print('质数个数:', count)

分解质因数方法:

对n进行分解质因数,应先找到一个最小的质数k(最小的质数就是2),然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n!=k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

n = int(input('please input a number:'))l = []while n>=2: #最小的质数是2for k in range(2, n+1): #从最小的质数开始除if n%k == 0: #可以整除,则除之后跳出循环,再从最小的质数2除起,如果不能整除,则除3,偶数肯定都可以被2整除n = n//k #整除的话,商作为下一次的 nl.append(k)breakprint(l)

或者:

n = int(input('please input a number:'))l = []k = 2 #从最小的质数2开始while n != k:if n%k == 0:l.append(k)n = n/kelse:k += 1else:l.append(k)print(l)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。