python 大数质因数分解

数字较小时:

def is_prime(number):for i in xrange(2, int(math.sqrt(number))+2):if number %i == 0 and  number !=i:return Falsereturn True

数字较大时:
判断是否为质数:isPrime(num)
质因数分解:factor(num)

#coding:utf-8
from random import randint
"""
快速质因数分解
"""def quickMulMod(a,b,m):'''a*b%m,  quick'''ret = 0while b:if b&1:ret = (a+ret)%mb//=2a = (a+a)%mreturn retdef quickPowMod(a,b,m):'''a^b %m, quick,  O(logn)'''ret =1while b:if b&1:ret =quickMulMod(ret,a,m)b//=2a = quickMulMod(a,a,m)return retdef isPrime(n,t=5):'''miller rabin primality test,  a probability resultt is the number of iteration(witness)'''t = min(n-3,t)if n<2:print('[Error]: {} can\'t be classed with prime or composite'.format(n))returnif n==2: return Trued = n-1r = 0while d%2==0:r+=1d//=2tested=set()for i in range(t):a = randint(2,n-2)while a in tested:a = randint(2,n-2)tested.add(a)x= quickPowMod(a,d,n)if x==1 or x==n-1: continue  #success,for j in range(r-1):x= quickMulMod(x,x,n)if x==n-1:breakelse:return Falsereturn Truedef gcd(a,b):while b!=0:a,b=b,a%breturn adef factor(n):'''pollard's rho algorithm'''if n==1: return []if isPrime(n):return [n]fact=1cycle_size=2x = x_fixed = 2c = randint(1,n)while fact==1:for i in range(cycle_size):if fact>1:breakx=(x*x+c)%nif x==x_fixed:c = randint(1,n)continuefact = gcd(x-x_fixed,n)cycle_size *=2x_fixed = xreturn factor(fact)+factor(n//fact)

python大数快速判断质数与分解质因数相关推荐

  1. Python判断质数合数,质因数分解并得到所有因数

    Python判断质数合数,质因数分解并得到所有因数 判断质数.合数 质因数分解 得到所有正因数 完整程序 运行效果 判断质数.合数 要判断一个大于一的正整数是质数还是合数,只需判断在区间[2, √x] ...

  2. 【C++】快速判断质数(6的倍数法)、快速获取n以下的质数(欧拉筛)板子

    快速判断质数(6的倍数法)板子 bool judge(int num) {if (num == 2 || num == 3) {return true;}//如果num不在6的倍数附近,则不是素数if ...

  3. 【数学专题】 筛质数、分解质因数和快速幂

    筛质数 质数筛法分为埃氏筛和线性筛. 埃氏筛没有线性筛时间复杂度好,不常用,但是他的时间复杂度分析方法却比较常用. 埃氏筛的时间复杂度为O(nloglogn)≈O(n)O(nloglogn)≈O(n) ...

  4. python 如何快速判断列表是否相同_Python-检查列表中的所有元素是否相同

    小编典典 通用方法: def checkEqual1(iterator): iterator = iter(iterator) try: first = next(iterator) except S ...

  5. python 如何快速判断列表是否相同_python如何判断两个list是否相等

    python中的cmp() 方法用于比较两个列表的元素. cmp()方法语法cmp(list1, list2) 参数 list1 -- 比较的列表. list2 -- 比较的列表. 返回值 如果比较的 ...

  6. python 正整数因数分解_python将一个正整数分解质因数.

    用户提问 # -*- coding: UTF-8 -*- def reduceNum(n): print '{} = '.format(n), if not isinstance(n, int) or ...

  7. python定义函数判断质数_用python3判定素数(自己定义的函数),这几步你要了解...

    本文,用python3写一个判别素数的自定义函数. 工具/材料 python3.6 math模块 time模块 操作方法 01 根据素数的定义,写一个粗略的自定义函数: def p(n): if st ...

  8. python显示给定数字因数分解_Python练习题 010:分解质因数

    [Python练习题 010]将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. -------------------------------------------------- ...

  9. python判断数字奇偶_python如果快速判断数字奇数偶数

    python如果快速判断数字奇数偶数 这篇文章主要介绍了python如果快速判断数字奇数偶数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用 按 ...

最新文章

  1. c语言不能写入文件,求大神看看为什么不能将数据写入文件
  2. 按值传递按引用传递按地址传递
  3. 跟随鼠标走的文字的html代码,跟随鼠标走的文字的HTML代码
  4. 黑客数字雨html单页,Hei客帝国数字雨.html
  5. CJCMS系列---慢慢讲电子商务在项目中的实践之前言
  6. IntelliJ IDEA 设置代码检查级别
  7. 经纬度绘图_用编程赋能工作系列——百度VS高德经纬度互转
  8. 1 echo();2 print();3 die();4 printf();5 sprintf();6 print_r();7 var_dump(); 区别
  9. XML编程-DOM4J
  10. matlab的函数要写在哪,matlab函数库在哪
  11. 投标工作笔记001---竞标和围标
  12. HowNet介绍及使用
  13. 配置MAC地址表实现绑定和过滤
  14. Java中四大代码块的执行顺序(附code)
  15. 2021高考武汉查询成绩时间,2021高考完什么时候可以查分数 查成绩的时间
  16. 913微型计算机原理,微机原理与接口技术(铁道大学)第9章定时器计数器.ppt
  17. 第3章 Stata描述统计
  18. 神经网络——基础思想
  19. IP地址(IPv4)
  20. 排序算法之时间复杂度O(n2)

热门文章

  1. html 关键字是什么,html中使用关键字的技巧是什么?
  2. 最纯净的重装系统,不需要各种重装非官方的工具(U盘启动,附分区方法)
  3. 所有的伟大,源于一个勇敢的开始
  4. 传奇服务器都有哪些文件,传奇服务端MonUseItems文件夹什么用?
  5. Cisco网络技术基础实训
  6. gcc 运行指定动态库的三种方法
  7. 地理信息科学前沿-[热词]
  8. php e all e notic,PHP error_reporting(E_ALL ^ E_NOTICE)一些资料整理
  9. python读取数据画三维图_Python实现读取txt文件并画三维图
  10. Linux的基础配置