数论
BoBoAn_DouYa
这个作者很懒,什么都没留下…
展开
-
1199. GCD
ConstraintsTime Limit: 1 secs, Memory Limit: 32 MBDescriptionThe greatest common divisor GCD(a, b) of two positive integers a and b, sometimes written (a, b), is the largest divisor common to a原创 2013-09-04 16:08:01 · 982 阅读 · 0 评论 -
素数筛选法
今日在做题目的时候,经常要用到是不是素数的判断,下面的判断方法很简单。#include#includeusing namespace std;int main(){ int a=1000; bool *isprime= new bool [a+1]; memset(isprime,1,sizeof(isprime)); for (int i = 2; i < a; ++原创 2013-09-04 13:55:22 · 668 阅读 · 0 评论 -
RSA算法原理(一)
作者: 阮一峰如果你问我,哪一种算法最重要?我可能会回答"公钥加密算法"。因为它是计算机通信安全的基石,保证了加密数据不会被破解。你可以想象一下,信用卡交易被破解的后果。进入正题之前,我先简单介绍一下,什么是"公钥加密算法"。一、一点历史1976年以前,所有的加密方法都是同一种模式:(1)甲方选择某一种加密规则,对信息进行加密;(2)转载 2013-09-19 14:46:49 · 816 阅读 · 0 评论 -
RSA (二)
作者: 阮一峰上一次,我介绍了一些数论知识。有了这些知识,我们就可以看懂RSA算法。这是目前地球上最重要的加密算法。六、密钥生成的步骤我们通过一个例子,来理解RSA算法。假设爱丽丝要与鲍勃进行加密通信,她该怎么生成公钥和私钥呢?第一步,随机选择两个不相等的质数p和q。爱丽丝选择了61和53。(实际应用中,这两个质数越大,就越难破解。)转载 2013-09-19 15:09:08 · 753 阅读 · 0 评论 -
拓展的欧几里得算法
#include using namespace std;int Euclidean(int n,int m,int &x,int &y){ if(m ==0 ) { x = 1; y = 0; return n; } int g = Euclidean(m, n%m, x, y ); int t = x - (n / m )*y; x = y; y = t; r原创 2013-10-12 21:40:35 · 638 阅读 · 0 评论