费马小定理题

2023-11-18

费马小定理:假如p是质数,且gcd(a,p)=1,那么

a^{p-1}\equiv 1\left ( mod \ p \right )

 

A题HDU - 4704

首先是挡板法(隔板法),然后用\binom{n}{m}=\binom{n-1}{m}+\binom{n-1}{m-1}即可,高中数学范围不多叙述。

然后得到答案是2^{^{N-1}}

 

这题读入数据大10^{100000},就算快速幂也肯定TLE,所以用费马小定理,把数据规模降到int 范围内,时间复杂度降低

因为1e9+7是一个素数,(基本可以假设N-1不是1e9+7的倍数,这一点我没想到,所以没写出来。。。。)

所以可以(1e9+7)^N对(1e9+7-1)取余,以下是代码:

#include<iostream>
#include<string.h>
#define MOD 1000000007 
using namespace std;
const int N=1e7+1;
//const int MOD=1e9+7;
char s[N];
int maxx;
int main()
{
    while(scanf("%s",s)!=EOF)
    {
    int l=strlen(s);
    long long k=0;
    s[l-1]-=1;//计算N-1 
    for(int i=0;i<l;i++)
    {
        k=k*10+s[i]-'0';
        k=k%(MOD-1);//费马小定理 
    }
    //cout<<k<<endl;
    long long t=2;
    long long ans=1;
    while(k>0)
    {
        if(k%2==0)
        {
            
        }
        else
        {
            ans=ans*t%MOD;
        }
        k/=2;
        t=t*t%MOD;
    }
    cout<<ans<<endl;
    }
}

 

 

 

 

第二题:HDU - 1395

2^{x} \ mod\ n\equiv 1

 

这个题目暴力求出答案:每此取余数即可

如果是偶数,直接跳出,奇数一定成立(证明听说要用欧拉函数,笔者最近在看数论方面的东西,奇数证明部分留个坑。)

#include<iostream>
#include<math.h>
#define ll unsigned long long
using namespace std;
int main()
{
    ll n;
    while(cin>>n)
    {
        ll count=1;
        ll t=2;
        if(n%2==0||n<=1)
        {
            printf("2^? mod %d = 1\n",n);
        }
        else
        {
            while(true)
            {
                if(t%n==1)break;
                count++;//计数 
                t=t*2%n; 
            }
            printf("2^%d mod %d = 1\n",count,n);
        }
    }
}

 

 

第三题:HDU - 5750

这题关键是素数筛

 

在素数筛里面最快的就是O(N)的复杂度

用素数和题目中给的d相乘,可以得到一些n的含有d因子的数,然后选择合适的跳出条件(其实观察题目也可以发现,在许多情况下,非常容易跳出,因为样例中有好几个是0)

(以后不管什么题都用long long)

然后又被cin比scanf()慢坑了,改scanf

上代码(有注释):
#include<iostream>
#include<string.h>
#define ll long long
using namespace std;
const int N=1e5+5;
bool vis[N];
ll prime[N];
ll pri(int n){
    memset(vis,1,sizeof(vis));
    ll num=0;
    for(ll i=2;i<=n;i++)
    {
        if(vis[i])prime[++num]=i;
        for(int j=1;j<=num&&i*prime[j]<=n;j++)
        {
            vis[i*prime[j]]=0;
            if(i%prime[j]==0)break;
        }
    }
    return num;
}
int main()
{
    int t;
    cin>>t;
    int cnt=pri(N-1);
    while(t--)
    {
        ll ans=0,n,d;
        scanf("%lld%lld",&n,&d);//scanf读入 比cin快 用cin会TLE 
        for(int i=1;i<=cnt;++i)
        {
            if(prime[i]<=d&&prime[i]*d<n)ans++;//在范围内 
            if(prime[i]>d||prime[i]*d>=n)break;//超过范围 
            if(d!=prime[i]&&d%prime[i]==0)break;//枚举了d的因数跳出 
        }
        cout<<ans<<endl;
    }
}

 

https://cn.vjudge.net/contest/273543#problem/A

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

费马小定理题 的相关文章

  • Ethereum架构的分析

    架构 1 顶层架构设计上 区块链可以简单的分为三个层次 协议层 扩展层和应用层 其中 协议层又可以分为存储层和网络层 它们相互独立但又不可分割 以太坊最上层的是DApp 它是整个区块链的展示层 通过Web3 js和智能合约层进行交换 如以太
  • Android RecyclerView的StaggeredGridLayoutManager布局,实现交错排列的子元素分组

    先看实现的效果图 设计背景 现在的产品对设计的需求越来越多样化 如附录文章2是典型的联系人分组RecyclerView 子元素排列到一个相同的组 但是有些时候 UI要求把这些元素不是垂直方向的 而是像本文开头的图中所示样式排列 这就需要用S
  • 如何创建HttpServletRequest对象

    我们常用的就是在Controller层的接口入参时定义 这样我们就能直接用了 如下图 但是某些情况 我们需要传递这个request 到各种工具类中 传递这个request 相对要麻烦一些 我们可以不用传递 在需要用到request的地方 通
  • 预付费智能电表,做到一户一表、远程自动抄表、电费预充值、电表实时计量扣费、欠费自动跳闸。-安科瑞黄安南

    前言 国家从2018年开始对转供电加价开展规范清理以来 已经出来了一系列政策 不仅包括专门针对转供电问题的政策 18 20年间还在每次降电价政策中突出强调了转供电主体不得截留降价红利的要求 从具体内容看 各地政策都鼓励一户一表改造实现直供
  • React Hooks学习

    Hooks Hooks 是一种函数 该函数允许您从函数式组件 勾住 hook into React 状态和生命周期功能 有状态组件 就可以使用函数式组件来定义了 类组件和函数组件 类组件 import React Component fro
  • JuiceFS 在多云存储架构中的应用

    2020 年末 谷歌旗下 DeepMind 研发的 AI 程序 AlphaFold2 在国际蛋白质结构预测竞赛上取得惊人的准确度 使得 AI 预测蛋白质结构 这一领域受到了空前的关注 今天我们邀请到同领域企业 深势科技为大家分享其搭建基础平
  • 解决windows10右下脚工具栏图标显示不正常问题

    解决windows10右下加工具栏图标显示不正常问题 大多数问题的原因 在 Windows 10 系统中 为了加速图标的显示 当第一次对图标进行显示时 系统会对文件或程序的图标进行缓存 之后 当我们再次显示该图标时 系统会直接从缓存中读取数
  • LocalDateTime与Date相互转换

    LocalDateTime转Date LocalDateTime localDateTime LocalDateTime now Date date Date from localDateTime atZone ZoneId systemD
  • 使用ECS和mysql搭建mysql服务器

    一 首先得在阿里云等云主机上申请两台主机 二 现在连上去安装mysql 1 通过安装源将mysql下载下来 root iz2ze2llim71y07x3numlbz wget https dev mysql com get mysql57
  • CSDN竞赛第40期题解

    CSDN竞赛第40期题解 1 题目名称 小鱼的航程 改进版 有一只小鱼 它上午游泳150公里 下午游泳100公里 晚上和周末都休息 实行双休日 假设从周x 1 lt x lt 7 开始 算起 请问这样过了n天以后 小鱼一共累计游泳了多少公里
  • Stable Diffusion 系统教程

    2023年的2月13日 一款名叫ControlNet的插件横空出世 AI绘画变得更加可控 ControlNet直译过来很简单 就叫做控制网 开发者是一名华裔 毕业于苏州大学 目前在斯坦福做读博士一年级 大佬大佬 在controlNet之前
  • 数字逻辑练习题(十一)利用74LS161设计一个七进制计数器

    一 题目描述 已知74LS161为同步四位二进制加法计数器 其逻辑符号和功能表如下 请利用74LS161设计一个七进制计数器 应写出分析设计过程 二 问题解答 1 分析 采用同步置数法进行设计
  • mysql for centos_centos7下安装mysql及测试centos

    步骤1 下载并安装MySQL wget http dev mysql com get mysql community release el7 5 noarch rpm rpm ivh mysql community release el7
  • Android studio3.0对于百度地图api开发(8)——百度地图开发思考

    随着对于百度地图SDK的不断深入 对于百度地图的基本操作以及实现 每一块功能就像是一个个工具 他们功能不同 又能相互组合 这就为我们开发者提供了一个很好的平台 在这个平台 开发人员可以进行根据自己的需求进行组装 为了更好的交流 相互学了 我
  • 苹果cmsV10-Dplayer播放器插件整合前置广告、暂停广告

    简介 Dplayer播放器 整合前置广告 暂停广告3 0免费版 很多朋友在用maccms的时候会遇到采集的视频资源存在大量的广告 这款Dplayer播放器不经能去除视频里的垃圾广告 还能站长自己添加广告 播放器整合说明 1 整合的苹果cms
  • 程序员整体架构之开发架构

    开发架构 文章目录 开发架构 概述 前言 互联网发展特点 单体架构 面向服务架构 SOA 水平分层架构 微服务架构 水平拆分 垂直拆分 服务网格架构 中台架构 云原生架构 Serverless 架构 小结 公众号 概述 简述了互联网业务发展
  • springboot的多环境配置(测试,开发,生产)

    众所周知再开发过程中 从开发 测试 上线 至少也得有3个环境 然而每个环境的配置都不一样 例如数据库配置 Redis配置 等各种配置 如果在打包环节来一个一个进行修改配置的话 非常容易出错 对于多环境配置 也有很多的构建工具 而他们的原理基
  • unity3d笔记-Input.GetAxis

    关于Input GetAxis 1 Input GetAxis Horizontal 获得键盘上的A D键 2 Input GetAxis Vertical 获得键盘上的W S键 3 Input GetAxis Mouse x 获得鼠标沿屏
  • 图像紫边消除(depurple)

    图像紫边广泛存在于目前的手机摄像头 数码相机 监控摄像头等数字成像系统所得图像中 当我们使用这些设备在逆光 大光圈等条件下拍摄时 所得图像的局部区域 特别是高反差区域 亮暗对比反差很大的图像区域 比如天空 灯管与物体相接的边缘 会比较容易观
  • 通过h5页面上传视频到Linux服务器

    1 上传视频到本地 https www jb51 net article 132531 htm 2 上传视频到Linux服务器 建立ftp连接 保证服务器已经安装ftp及对应端口 帐号有权限 上传视频 https blog csdn net

随机推荐

  • 基于实数编码的遗传算法搜寻多元函数最值

    遗传算法介绍 遗传算法于20世纪70年代由美国的John holland提出 是一种通过模仿达尔文生物进化理论和遗传机制以寻求问题最优解的启发式算法 算法的运作主要依赖于三大算子 选择 交叉 变异 其算法流程如图1所示 图1 遗传算法流程图
  • 作为一枚python小白如何提升项目实战——Python茅台抢购脚本详细教程

    今天给大家推荐的GitHub开源项目就是一款京东抢茅台的脚本 当然推荐的脚本也是仅用于测试和学习研究 禁止用于商业用途 不能保证其合法性 准确性 完整性和有效性 请根据情况自行判断 主要功能 预约茅台 定时自动预约 秒杀预约后等待抢购 定时
  • Python IO编程详解

    一 文件系统操作 1 os os path和pathlib的对比 Python中处理文件路径和文件系统操作的传统方式 是通过os和os path模块中的函数来完成的 这些函数完全能够胜任需求 但往往会使得代码过于冗长 自Python 3 5
  • java随机生成6位数

    生成6位随机数 仅只有6位 int Math random 9 1 100000 Math Random 函数能够返回带正号的double值 该值大于等于0 0且小于1 0 即取值范围是 0 0 1 0 的左闭右开区间
  • 理解 __declspec(dllexport)和__declspec(dllimport)

    这段时间要把tinyxml从静态库弄成动态库 要用到 declspec dllexport 和 declspec dllimport 来导出dll和lib文件 终于弄明白了export和import的作用 下面从使用的角度来说明一下他们的功
  • 2020北京邮电大学计算机学院复试经验分享

    初试组内第4 复试组内第1 综合第2 已成功上岸 最近大家问我复试的比较多 趁还热乎 在这里给大家分享一下吧 仅供参考 然后初试经验贴在这里 不要因为初试成绩不好就放弃复试或者不认真对待 复试是干嘛的就是用来翻盘的 都坚持了一年了 也不差这
  • C# 获取计算机信息

    文章目录 一 本机信息 1 本机名 2 获得本机MAC地址 3 获得计算机名 4 显示器分辨率 5 主显示器分辨率 6 系统路径 二 操作系统信息 1 操作系统类型 2 获得操作系统位数 3 获得操作系统版本 三 处理器信息 1 处理器个数
  • Sublime Text3设置文本的自动换行

    1 点击Preferences Settings 然后出现以下页面 2 点击保存即可 如果想要修改其他属性 可以直接在Default里面找就可以
  • Java正则表达式验证电话号码

    在注册会员时 经常需要输入电话号码 电话号码是指手机号码或者固定电话 如果输入的内容不合法 则会向用户输出提示 本实例模拟实现电话号码的验证功能 接收用户在控制台输入的电话号码 然后进行判断 并将结果输出 在这里使用 Java正则表达式 一
  • linux改变文件所属用户和组

    1 改变文件所属用户 chown 用户名 文件名 2 改变文件所属组 chgrp 用户名 文件名
  • 狂神说-Mybatis笔记(总)

    环境 JDK1 8 MySQL 8 0 23 maven 3 6 1 IDEA2020 3 框架 需要配置文件 官方中文文档 https mybatis org mybatis 3 zh index html 一 简介 1 什么是Mybat
  • 通俗易懂权限管理模块设计-Java

    最近一直在做CMS系统 发现一些内容其实都是重复出现的 例如权限管理模块 权限管理模块就是为了管理用户是否有权利访问某个权限 如果不能则拒绝访问 其实Java中已经有很成熟的权限管理框架 例如 Shiro Spring Security等
  • 怎么让人物脚贴地 模型_Unity利用FinalIK实现角色脚掌贴着地面行走工具

    using System Collections Generic using UnityEditor using UnityEngine public class FootBones public GameObject Bone1 publ
  • 设计原则学习之里氏替换原则

    以下内容均来自抖音号 it楠老师教java 的设计模式课程 1 原理概述 子类对象 objectofsubtype derivedclass 能够替换程序 program 中父类对象 objectofbase parentclass 出现的
  • C语言程序的undefined,c语言中undefined reference to ""怎么解决

    2 gcc c test c gcc c main c 得到两个 o 文件 一个是 main o 一个是 test o 然后我们链接 o 得到可执行程序 3 gcc o main main o这时 你会发现 报错了 4 main o In
  • python安装pandas失败问题

    开始使用pip install pandas报错 后来将pip语句更换为 pip default time 100 install pandas 成功安装pandas
  • 朋友拿下字节27K的offer,实名羡慕了....

    最近有朋友去字节面试 面试前后进行了20天左右 包含4轮电话面试 1轮笔试 1轮主管视频面试 1轮hr视频面试 据他所说 80 的人都会栽在第一轮面试 要不是他面试前做足准备 估计都坚持不完后面几轮面试 其实 第一轮的电话面试除了一些常规的
  • IBM也下场LLM了,自对齐、高效率的单峰驼Dromedary来了

    近期IBM Research发布了dromedary 并指出这个模型通过一种称为自对齐 SELF ALIGN 的新方法 结合了原则驱动 principle driven 的推理和LLM的生成能力 用于AI代理的自我对齐 使人类的监督最少化
  • 链式调用demo

    所谓链式调用就是调用完一个函数后还能再继续调用其它函数 这样大大减少了代码量 尤其是项目比较大的时候 逻辑集中清晰明了 且易于查看和修改 react hooks处理hooks原理用到了链式调用 fiber memorizedStaste h
  • 费马小定理题

    费马小定理 假如p是质数 且gcd a p 1 那么 A题HDU 4704 首先是挡板法 隔板法 然后用即可 高中数学范围不多叙述 然后得到答案是 这题读入数据大 就算快速幂也肯定TLE 所以用费马小定理 把数据规模降到int 范围内 时间