常用算法
2018-06-18 01:53:05来源:未知 阅读 ()
内容:判断质数
持续更新
# __author: _nbloser # date: 2018/2/4 import math def is_prime(number): num_sqrt = int(math.sqrt(number)) for i in range(2, num_sqrt + 1): if number % num_sqrt == 0: return False return True if __name__ == '__main__': n = int(input('输入要判断的数:')) print(is_prime(n))
# __author: _nbloser # date: 2018/3/2 ### 求a^m mod n 。 返回的d为答案,比如 2^3 mod 5 = 3 ,则返回3 def mod(a, m, n): temp = m c = 0 d = 1 k = len(bin(a).replace('0b', '')) b = [0 for x in range(k)] # 创建长度为k的数组/ a = [0]*10 后面这个快 for i in range(k): if (0 == temp % 2): b[i] = 0 else: b[i] = 1 temp = temp / 2 for i in range(k-1): c = c*2 d = (d*d) % n if 1 == b[i]: c = c+1 d = (d*a)%n return d """这个算法是我在学密码学的时候要用到,开始是c语言,后面我用python比较好用,我就改成python版本了,c语言版本在下面 //求 a 的 m 次方模 n 算法 int mod(int a, int m , int n ){ int c = 0; int d = 1; //算 m 有多少二进制位,即求 k int k = 1; int temp = 2; while(temp < m){ temp = temp * 2; k++; } //把 m 放入数组 b[k]中 int b[k]; int i; temp = m; for( i = 0; i < k; i++ ){ if( 0 == temp%2){ b[i] = 0; } else{ b[i] = 1; } temp = temp/2; } for( i = k-1; i >= 0; i--){ c = c * 2; d = (d*d) % n; if( 1==b[i] ){ c = c + 1; d = (d*a)%n; } } return d; } """
# __author: _nbloser # date: 2018/3/3 def is_leapyear(year): if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: return True else: return False ##这个倒是很简单,记住就行了,/哈哈
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:类的嵌套
- PythonDay08 2019-08-13
- 使用scrapy框架爬取全书网书籍信息。 2019-08-13
- python爬虫常用库 2019-08-13
- python Django基础操作 2019-07-24
- Python多进程方式抓取基金网站内容的方法分析 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash