2^x mod n = 1(暴力或欧拉函数)

CCP协议中的DAQ模式到底怎么用?从零配置ECU周期性数据上传(避坑指南) 本文详细解析了CCP协议中的DAQ模式在ECU数据采集中的应用,从核心概念到配置流程,再到典型问题排查与优化策略。通过对比DAQ与Polling模式的性能差异,展示了DAQ模式在降低总线负载、提升采集效率方面的优势,并提供了多ECU同步采集和长期数据记录等进阶应用场景的实用指南。 阅读详情

2^x mod n = 1

 Give a number n, find the minimum x(x>0) that satisfies 2^x mod n = 1.

Input
One positive integer on each line, the value of n.
Output
If the minimum x exists, print a line with 2^x mod n = 1.

Print 2^? mod n = 1 otherwise.

You should replace x and n with specific numbers.

Sample Input

2
5

Sample Output

2^? mod 2 = 1
2^4 mod 5 = 1

题意:

找到最小的x使得2x mod n=12x mod n=1

根据欧拉定理我们知道如果2和n不互质x一定不存在,但是还要注意当n = 1的时候因为他很特殊所有数模1都是0,所以也无解

因此根据求欧拉函数可得到一个值使得x满足上式,但不一定是最小的,所以还有从小于phi的数内枚举一遍。。当然了也可以直接一开始就暴力枚举

code:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long ll;
ll Euler(ll n){
    ll ans = n;
    for(ll i = 2; i * i <= n; i++){
        if(n % i == 0){
            ans = ans / i *(i - 1);
            while(n % i == 0) n /= i;
        }
    }
    if(n != 1){
        ans = ans / n * (n - 1);
    }
    return ans;
}
ll gcd(ll a,ll b){
    return b ? gcd(b,a%b) : a;
}
ll q_pow(ll a,ll b,ll mod){
    ll ans = 1;
    while(b){
        if(b & 1)
            ans = ans * a % mod;
        b >>= 1;
        a = a * a % mod;
    }
    return ans;
}
int main(){
    ll n;
    while(~scanf("%lld",&n)){
        if(gcd(2LL,n) != 1 || n == 1){
            printf("2^? mod %lld = 1\n",n);
        }
        else{
            ll phi = Euler(n);
            ll ans = phi;
            for(ll i = 2; i <= phi; i++){
                if(q_pow(2LL,i,n) == 1){
                    ans = i;
                    break;
                }
            }
            printf("2^%lld mod %lld = 1\n",ans,n);
        }
    }
    return 0;
}
AUTOSAR内存篇 -内存驱动(Mem) Mem驱动程序的task是基于底层内存设备技术的物理分段的低级内存访问。Mem驱动程序的API与内存设备技术无关,因此向存储器访问模块上层提供了与存储器设备无关的接口。所有高级功能(如跨段操作)都由内存访问模块处理,以尽可能降低Mem驱动器的复杂性和占用空间。Mem驱动API命名、类型定义和文件命名规则都遵循标准的AUTUSAR BSW模块实现。服务Mem_Init初始化Mem驱动的内部状态,并设置Mem驱动Job处理状态到MEM_JOB_OK。 阅读详情

相关推荐

【软件安装系列】Ubuntu+mysql5.7.27+Jira8.3.1+邮箱服务器配置+Confluence6.15.7安装经验和采坑总结

文章目录一、软件准备(百度云易被吞,就不放了)1.1 官网下载的新鲜的Jira和Confluence1.2 linux的jdk一份1.3 Jira和Confluence的破解程序或者破解包一份1.4 java的连接器一份二、安装过程1--java环境配置2.1 将下载下来的jdk包解压在/usr/local/java目录中2.2 写入环境变量三、安装过程2--mysql5.7.27环境配置3.1 ...

xiaosha_的博客 6889

HDU 1395 2^x mod n = 1(欧拉定理+快速幂)

题目链接:https://cn.vjudge.net/contest/319236#problem/H Sample Input 2 5 Sample Output 2^? mod 2 = 1 2^4 mod 5 = 1 翻译: 输入一个n(n>0),求书否存在一个x满足2^x mod n = 1,如果存在按格式输出最小的x,不存在按格式对应的位置输出?。 分析: 1。要使2^x mod...

zaiyang遇见 486

RC电路(一):微分|积分

的取值不同,会导致输出波形和输入波形之间的关系也不同,由此也会产生不同的应用。输出为0,随着电容充满电,运放-输入端得到的分压为正最大值,可等效成一个电压源,且电压不可突变,此时电流反向为最大值,开始充电时的容抗为0,电压不可突变则电压差为0,运放。开始充电时的容抗为0,电压不可突变则电压差为0,运放。输入端得到的分压也不可突变,随着电容放完电,于是。,因电容上电压不能突变(来不及充电,相当于短路,由上分析可得积分运算电路中,输出为运放的负最大峰值,随着电容充满电,输出为运放的正最大峰值,随着电容放完电,

既有随处可栖的江湖,也有追风逐梦的骁勇! 1万+

hdu-1395 2^x mod n = 1---求阶(欧拉函数)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1395 题目大意: 题目中给出输入一个整数n,要求一个最小整数的x,使得2^x mod n=1; 解题思路: 2^x = 1(mod n)就是求2模上n的阶。 传送门:阶与原根 如果n是偶数或者是1,答案一定不存在 如果是偶数,2^x也是偶数,偶数模上偶数不可能为1。 如果n为1,...

weixin_34015336的博客 388

【STM32/GD32】Keil uVision生成bin文件:从编译选项到Bootloader升级实战

本文详细讲解了如何在Keil uVision中配置STM32/GD32工程,使其在编译后自动生成Bootloader升级所需的bin文件。通过解析fromelf工具的使用、构建后命令的配置以及内存布局规划,深入阐述了bin文件在固件升级中的核心作用,并提供了串口Bootloader的实战框架与常见问题解决方案。

weixin_29190169的博客 391

GAMES101:MacOS作业环境搭建

查看gcc/clang的位置产看gcc/clang的版本1.1.2 安装cmake。

weixin_38844255的博客 715

2^x mod n = 1

题目描述 给你一个正整数n,要求你找到最小的x(x&gt;0)满足2^x mod n = 1。 输入 输入包含多组测试数据。每行一个正整数,代表n的值。 输出 如果最小的x存在,则输出2^x mod n = 1(注意x和n要用具体的值代替),否则输出2^? mod n = 1。 样例输入 2 5 样例输出 2^? mod 2 = 1 2^4 mod 5 = 1 题解...

一个和代码打交道の小孩 2280

web渗透--9--识别web应用框架

1、概述 Web框架指纹识别是信息收集过程中的一个重要任务。获悉目标框架的类型必然为测试人员带来极大的优势,如果该框架在之前就被测试过。测试人员不仅可以获得未修补版本中存在的漏洞,还可以了解此框架中特有的错误配置以及已知的文件结构。从而使指纹识别过程显得格外重要。

武天旭的博客 5097

2^x mod n = 1(欧拉函数)

接着上一次的题解https://blog.youkuaiyun.com/u010017231/article/details/84679719继续写: 首先,介绍一下思路: 易知n==1或2时,一定不存在这样的x:当n为偶数时,bn + 1(b为整数)是奇数,而2^x是偶数,故 2^x mod n = 1不可能成立 欧拉定理:若n,a为正整数,且n,a互质,则:,其中phi(n)为欧拉函数,表示小于n的...

『 』的博客 1813

[Dify实战] 招投标标书智能生成:模板套用 + 风险校验

摘要:本文提出基于Dify构建AI标书生成工作流,解决传统标书撰写中内容重复(80%复用率)、人工修改效率低、风险检查易出错等痛点。方案包含三大核心模块:1)智能生成(基于模板自动填充项目信息);2)风险校验(AI自动检查废标风险点);3)多角色协作。通过拆分标书结构、设置详细Prompt、建立风险检查清单,实现从"人工撰写"到"参数化自动生成+AI审核"的转型,最终输出标准格式文档并支持企业系统集成。典型应用场景下,系统能自动生成技术方案并识别关键风险(如支付安全合

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 827

《无线传感网络 matlab》:从入门到实践

这就是如何使用Matlab建立一个简单的无线传感网络并进行仿真的方法。当然,这只是一个入门级的示例,真正的无线传感网络可能会更加复杂和庞大。首先,我们需要创建一个无线传感网络的基础结构。接下来,我们需要定义一个数据包的格式,以便节点之间可以交换信息。无线传感网络是一种由无线传感器节点组成的、自组织的网络。现在,我们可以开始编写节点代码了。我们将使用Matlab提供的工具箱来构建一个简单的无线传感网络,并对其进行仿真和分析。现在,我们可以将这个节点复制9次,以创建一个包含10个节点的无线传感网络。

NoerrorCode的博客 296

hdu 1395 2^x mod n = 1 暴力 欧拉函数

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1395 问题描述 给出一个数字n,找到满足2 ^ x mod n = 1的最小x(x> 0)。 输入 每行一个正整数,n的值。 产量 如果存在最小x,则打印一条2 ^ x mod n = 1的行。 打印2 ^ ?mod n = 1否则。 您应该用特定数字替换x和n。 样本输入 ...

一叶之修的博客 557

195、大模型蒸馏与压缩:知识蒸馏与VLA模型轻量化

折腾完这一整套流程,最大的感悟是:知识蒸馏不是简单的模型压缩,而是知识迁移的工程艺术。每一步都有坑,每个参数都可能影响最终性能。给后来者的建议是:先别急着上蒸馏,把teacher模型的推理延迟和显存占用测清楚,确定瓶颈在哪里——是计算量太大还是内存带宽不够,这决定了你该用蒸馏还是量化还是剪枝。蒸馏训练时一定要监控每一层的特征对齐loss,别只看总loss。如果某一层的对齐loss特别高,说明student在这一层学歪了,需要调整该层的损失权重或者增加该层的投影头容量。

sundong_81的博客 110

杭电 1395 2^x mod n = 1 暴力题

一直以为有什么高深的算法,,没想到暴力一下就能过。。这太悲剧了。可以用欧拉定理证明其存在性。欧拉定理是这样的,如果a和m互质且a 2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5974    A

3920

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

2^x mod n = 1 HDU - 1395(欧拉定理 原根)

2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 20711Accepted Submission(s): 6500 Problem Description Give a number n,...

babing2770的博客 175

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

hdu 1395 2^x mod n = 1

点击打开链接 显然没有解的时候是n==1||n%2==0 做法要利用这样几个定理: 第一个是a^phi(m)%m=1 这个等式在m和a互质的时候一定成立 在这个题目中,因为a=2 所以m与a不互质,除非m为偶数 当然m=1的时候需要特殊处理下,这些都是小问题。   现在这个问题明了了,即在m为奇数(大于1)的时候一定有解。 那么就有人

hello_fei 1018

zoj ——1489——2^x mod n = 1

这个题目需要求出来满足 2^x≡1(mod n)的最小的正整数x,n>0。 首先考虑欧拉定理2^eular(n)≡1(mod n),要求是n>1,所以当n = 1的时候,其实所有的数k都有k≡0(mod n),这是一个特判的所在。 欧拉定理中的eular(n)一定是循环节,但不一定是最小循环节:eg:n = 7的时候有: 2^0 mod 7 = 1; 2^1 mod 7 = 2; 2^2

shuimu12345678的专栏 1001

ACM 数论 hdu 1395 2^x mod n = 1

Problem Description Give a number n, find the minimum x(x>0) that satisfies 2^x mod n = 1.   Input One positive integer on each line, the value of n.   Output If the minimum x exists, p

Little_boy_z的博客 714

HDU/HDOJ 1395 ACM浙大月赛 2^x mod n = 1

2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4911    Accepted Su

bingshen的专栏 3602

数论 杭电 1395 2^x mod n = 1 暴力题

一直以为有什么高深的算法,,没想到暴力一下就能过。。这太悲剧了。可以用欧拉定理证明其存在性。欧拉定理是这样的,如果a和m互质且a 2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5974   

ssdut_209的博客 426

HDOJ-1395-2^x mod n = 1 解题报告

欧拉定理,可暴力。题意:给一个整数n求满足2^x = 1(mod n)的最小x(x > 1)。        我的解题思路:根据欧拉定理及其推广,当n与2互素时2^phi(n) = 1(mod n),因此容易得知当n为奇数时n与2互素。当n为偶数或者1时则必定不能满足2^x = 1(mod n)。另外,当n与2互素时phi(n)不一定是满足要求的最小x,但是根据欧拉定理的推广,最小x必定

JZQT_T的博客 805

HDU1395 2^x mod n = 1

题目链接 思路:本来以为如果是偶数就? 奇数就 5 = 2*2 + 1  所以就是 2的4次方 。WA!  例如, 2^x mod 7 = 1.  这样的答案是  7 = 2 * 3 + 1 是6吗? 6的确对,但是要保证最小。所以思路错误。看了题解。了解到费马小定理,还是欧拉定理能够得到奇数必有解。 AC代码:(暴力求解) #include&lt;iostream&gt; #inclu...

ACMerszl的博客 232

2^x mod n = 1, 对于给定n,求x

Virtual Judge上的地址:https://cn.vjudge.net/problem/HDU-1395 首先,很明显这道题与数论有关,但身为对数论一窍不通的辣鸡,我一开始就直接暴力模拟的,附代码:  #include&lt;iostream&gt; using namespace std; long long n; long long qpow(long long k) { l...

『 』的博客 715

【HDOJ】1395 -> 2^x mod n = 1

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1395 心得:         欧拉定理: a^phi(m) ≡1(mod m),phi(m)为欧拉函数,表示比m小且与m互质的正整数个数,当m为质数时,phi(m)=m-1。即为费马定理。本题中:1、当n为1时无解。 2、当n为偶数时,2^x也为偶数,所以2^x不可能和n关于奇数1同

一个程序猿的BLOG 863

hdu 1395 2^x mod n = 1 欧拉定理(当然可以直接暴力)

#include #include #include #include #include using namespace std; #define LL __int64 LL t,e[1000]; LL mod; LL euler_phi(LL n)//欧拉函数 { LL m=sqrt(n+0.5); LL ans=n,i; for(i=2;i<=m;i++)

冷月之殇 2477
上一篇: And Now, a Remainder from Our Sponsor (中国剩余定理互质情况)
下一篇: HDU 2879 HeHe (素数+积性函数及证明)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值