信息安全数学基础
《信息安全数学基础》一书学习过程中的编程实现,以及相关的学习代码
hiyahh
这个作者很懒,什么都没留下…
展开
-
中国剩余定理(c语言)
什么是中国剩余定理?怎么手算?代码如何实现?原创 2022-04-16 11:57:29 · 3333 阅读 · 1 评论 -
欧拉函数的求法(三种)
欧拉函数定义求欧拉函数的方法1.公式法2.线性筛法根据三条性质来解题的://1、当p为质数的时候:phi(p)=p-1//2、当p与i互质时有: phi(p*i)=phi(p)*phi(i)//3、当i%p==0时有:phi(p*i)=p*phi(i)具体实现参考链接:1.求欧拉函数的三种常见类型及解决代码2.求欧拉函数的代码...原创 2022-03-23 22:24:14 · 4135 阅读 · 0 评论 -
扩展欧几里得算法-求逆
扩展欧几里得算法介绍👀已知整数a、b,扩展欧几里得算法可以在求得a、b的最大公约数的同时,能找到整数x、y(其中一个很可能是负数),使它们满足等式ax + by = gcd(a,b)那么,扩展欧几里得算法的一个作用就是得到ax+by=gcd(a,b)的整数解。计算过程有两个数a,b,对它们进行辗转相除法,可得它们的最大公约数。然后,收集辗转相除法中产生的式子,倒回去,可以得到ax+by=gcd(a,b)的整数解。定理公式(根据《信息安全数学基础》一书上得出的结论公式 输出表格)c语原创 2022-03-23 21:48:13 · 2452 阅读 · 0 评论 -
欧几里得算法-求最大公约(因)数
欧几里得算法欧几里得算法介绍欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式gcd(a,b) = gcd(b,a mod b)。ps:gcd(a,b)表示a和b的最大公因数,是一个数字。计算过程给定两个非负整数,让第一个做被除数,第二个做除数,计算得到余数;让第一轮的除数、余数,成为第二轮的被除数、除数,再得到余数…重复直到余数为零,则最后一轮的除数(即倒数第二轮的余数)即为所求的两数的最大公因数。原创 2022-03-23 18:44:14 · 5277 阅读 · 0 评论 -
爱拉托斯散筛法求出100以内的全部素数()
#include<stdio.h>#include<math.h>void findp(int part[])//寻找不大于根号100的素数 { int num,i; for(num=2;num<=sqrt(100);++num) { for(i=2;i<=num-1;++i) { if(num%i==0) break; } if(i<num) part[num]=0; else part[num]=1; } prin原创 2021-10-26 20:19:00 · 1022 阅读 · 0 评论 -
Mersenne素数(梅森素数)C语言版
梅森数与梅森素数梅森数(Mersenne number)又称麦森数,是指形如2^p-1的正整数,其中指数p是素数,常记为Mp 。若其是素数,则称为梅森素数。———————注意———————梅森数:满足2^p—1的所有数,梅森数可能是合数也可能是素数。梅森素数:梅森数中的素数,才称之为梅森素数。举例:2^11—1=2047=23×89,所以2047是合数,只能称其梅森数。————————————————梅森素数的确定:就是判断一个符合格式要求的梅森数是素数即可 。算法:打印前n个梅森素数原创 2021-10-06 14:57:04 · 5521 阅读 · 1 评论