位运算(a*b)%p的计算_qq_51574958的博客-程序员宅基地

技术标签: 算法  

求 a 乘 b对 p
 取模的值。
输入格式
第一行输入整数a,第二行输入整数b,第三行输入整数p。
输出格式
输出一个整数,表示a*b mod p的值。
数据范围
1≤a,b,p≤1018
输入样例:
3
4
5
输出样例:
2
// 源代码
由于a,b的范围过大,将b分解为二进制的形式,例如5101 
那么a*b可以表示为
a*101= a * 20次方 + a * 22次方
通过b&1可以判断末位是否是1

#include<iostream>
using namespace std;
typedef unsigned long long ull;
ull a,b,p,res;
int main()
{
    
    cin>>a>>b>>p;
    while(b)
    {
    
        if(b&1) res = (res + a)%p;  //如果末位为1 那么就加上 a   //在第一次进入循环时如果b&1 == 1 证明需要加上2的0次方倍的1那么直接加上即可。 
        b = b / 2; // 对b进行移位,让b的末位变成2的1次方。
        a = (a * 2)%p; // 对a进行扩大,a编程的 2的一次方倍的a。
    }
    cout<<res;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_51574958/article/details/125741186

智能推荐

DVWA 通关指南:Weak Session IDs (弱会话)_J0hnson666的博客-程序员宅基地

DVWA 通关指南:Weak Session IDs (弱会话)目录Weak Session IDs (弱会话)Low Level源码审计攻击方式Medium Level源码审计攻击方式High Level源码审计攻击方式Impossible Level总结与防御参考资料Weak Session IDs (弱会话)Knowledge of a session ID is often the only thing required to access a site as a s

java学习成果_盛升的博客-程序员宅基地

java学习成果(简易计算器)

【JVM】垃圾回收算法与分代回收_起名方面没有灵感的博客-程序员宅基地

根据判定对象消亡的角度来看,垃圾收集算法可分为引用计数式垃圾收集(直接垃圾收集)追踪式垃圾收集(间接垃圾收集)Java虚拟机中采用的是追踪式垃圾收集,追踪式垃圾收集有标记-清除算法标记-复制算法。

使用 React 和 Cypress 进行单元测试_cypress 单元测试_pxr007的博客-程序员宅基地

开发人员使用单元测试来验证应用程序是否运行良好。它涉及独立检查应用程序的每个模块。术语“单元”是指应用程序的单个可测试部分。此过程可帮助测试人员和开发人员捕捉和理解开发环境中的早期错误。然后,工作人员有足够的时间来更改任何缺陷代码。不同类型的测试之间出现混淆的情况并不少见。端到端 (E2E) 测试单元测试用于从头到尾测试整个应用程序。用于测试应用程序的各个单元。检查应用程序的行为流。检查单元的功能验证。通常是一种昂贵的测试手段。通常是一种具有成本效益的测试方法。主要是手动执行。

pycharm导入第三方库的两种方法(永不报错)_战士小小白的博客-程序员宅基地

在学习python的过程中,我们会使用到各种各样的第三方库,但是如何pip有n种方法,如系统提示如在terminal中pip或者在cmd中pip以上三种方法在pip中会出现各种各样的错误,看似安装了,实则失败接下来我将详细介绍到底如何pip最省时省力。

随便推点

echarts报错 TypeError: Cannot read properties of null (reading ‘getAttribute‘):_Sun Peng的博客-程序员宅基地

echarts报错 TypeError: Cannot read properties of null (reading ‘getAttribute‘):

人脸识别—换脸_face_recognition 换脸_cici—one的博客-程序员宅基地

一、人脸匹配使用人脸匹配代码如下其中,tolerance即人脸对比的容忍度,其值越低,对比精度越高import cv2import face_recognitionimport matplotlib.pyplot as pltknown_image=cv2.imread("jzm.jpg")known_image = face_recognition.load_image_file("jzm.jpg")unknown_image=cv2.imread("wyl.jpg")unk

怎么快速修改gif尺寸?仅需三步教你改gif大小_八蔹565的博客-程序员宅基地

GIF中文网作为一个专业的gif制作工具,支持本地图片和网络图片上传两种方式,最大可上传50M的图片,可自定义调节裁剪的尺寸,在不影响画质的情况下在线裁剪gif大小。Gif动图上传后,输入需要裁剪尺寸的数值或者通过拖动灰色裁剪框的方式来裁剪gif动图尺寸,完成后,点击“裁剪”。打开GIF中文网网站,点击“GIF工具-GIF裁剪”功能,将需要裁剪的gif动图上传。2、可自定义调节裁剪的尺寸,在不影响画质的情况下在线裁剪gif大小。1、支持本地图片和网络图片上传两种方式,最大可上传50M的图片。

推荐文章

热门文章

相关标签