最大公约数等几个算法

//求a,b的最大公约数,递归方法求,利用gcd(a,b)=gcd(b,a mod b);
//不一定要参数a大于b,因为如果a小于b,那么直接调用GCD(b,a),然后继续执行
iijuu uu
int GCD(int a, int b)
{
    if (b == 0)
    {
        return a;
    }
    return GCD(b, a%b);
}


----------
//扩展欧几里得算法,求
// d=gcd(a,b)=a*x+b*y

int ExtendedEuclid(int a, int b, int& x, int& y)
{
    if (b == 0)
    {
        x = 1;
        y = 0;
        return a;
    }
    else
    {
        int res = ExtendedEuclid(b, a%b, x, y);
        int temp = x;
        x = y;
        y = temp - a / b*y;
        return res;
    }
}


----------


----------
用反复平方法求数的幂
//求a^b mod n
int ModularExponentiatiao(int a, int b, int n)
{
    int c = 0;
    int d = 1;
    vector<int> bits;
    while (b != 0)
    {
        bits.push_back(b % 2);
        b /= 2;
    }

    int k = bits.size() - 1;
    for (; k >= 0; --k)
    {
        c = 2 * c;
        d = (d*d)%n;
        if (bits[k] == 1)
        {
            c = c + 1;
            d = (d*a) % n;
        }
    }
    return d;
}


----------


----------
//伪素数测试--测试一个数是否是素数
//根据费马定理,如果n为素数,那么对任意一个素数a,满足a^(n-1) mod n=1;
//如果能找出一个素数a,使得不满足a^(n-1) mod n=1,那么n就当然是合数
//对a=2,如果不满足a^(n-1) mod n=1,那么n是合数,如果满足,猜测n为素数,出错的概率非常小。
bool PseudoPrime(int n)
{
    if (ModularExponentiatiao(2, n - 1, n) != 1)
    {
        return false;
    }
    else
    {
        return true;
    }
}
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值