LCM与快速取模运算模板

LCM与快速取模运算模板

一. LCM取最小公倍数模板。
公式:两数a,b的最小公倍数等于两数相乘除以两数的最大公倍数。
代码:

#include<bits/stdc++.h>
using namespace std;
int lcm(int a,int b)
{
    int ans;
    ans=a/__gcd(a,b)*b;
    return ans;
}
int main()
{
    int a,b,result;
    scanf("%d %d",&a,&b);
    result=lcm(a,b);
    printf("%d",result);
    return 0;
}

二.快速取模运算模板(非递归写法)
说明:快速取模运算时用来解决求对一个数的ncifang取模的问题,虽然可以先进行n次乘法再取模,但是当一个数的指数很大的时候先进行n此乘法的时候就很容易超时所以我们引出快速取模。
实质:快速取模实质是用位运算将一个的指数变成二进制来进行位运算的过程。
思想:将需要操作的数字的底数,指数和需要取模的模数,输入进函数,然后通过循环来判断指数是否为基数,如果是奇数则让结果乘以自己即次数加一,如果是偶数则让它自己乘以自己即次数加二。最后进行b=b/2,即b的二进制位向后移一位,直到b为0位置。
代码:

#include<bits/stdc++.h>
using namespace std;
long long quickmod(long long a,long long b,long long c)
{
    long long result,i,j;
    result=1;
    while(b)
    {
        if(1&b)
            result=result*a%c;
        a=a*a%c;
        b/=2;
    }
    return result;
}
int main()
{
    long long a,b,c,result;
    scanf("%lld %lld %lld",&a,&b,&c);
    result=quickmod(a,b,c);
    printf("%lld",result);
    return 0;
}

1。打开功能是专门用于对C语言文件自动提取显示所需要的汉字,进行点阵码数据转换的, 在您的C语言程序中,有一点需要特别留意:您的注解中请不要使用双引号,否则会引起 提取错误。 软件包中的文件ee.c作为一个简单例程供提取测试用。 2。提取以后的点阵码可以随意修改点阵数据,使用鼠标的左键为加一点,右键为擦除一点。 修改完毕请按旁边的确认键将数据记录到点阵码中,否则您的修改将自动放弃。 3。点阵码可以随意平移,请谨慎使用。平移之前请查看一遍所有的字符点阵图,平移有可能 会丢失边界点,移出了边界的点阵将被丢弃,不可恢复。 平移前请确认是否有必要进行全体字符一起移动。 4。用户自定义特殊字符的建立,首先选定点阵数据,在下面的汉字输入窗口输入几个您不使 用的汉字,确认。然后生成了这些汉字的点阵码,再将他们清空(使用平移按钮中间的那 块抹布),就可以用鼠标描绘你的图案了,最后别忘了打“确认”键。 5。ASCII字符可以自动提取0x20~0x7f的全部,最后一个0x7f一般都没有用,可以手工将它删 除,也可以利用它做一个简单的特殊字符。 汉字库中也包含有ascii字符,但是经查对与这三个ascii库基本一样,所以就不再重复。 6。保存文件:C语言格式的默认为.h类型,汇编格式的默认为.inc类型,只要将他们加入到 您的工程中就可以了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值