【HDU】 1395 2^x mod n = 1

原创 2016年05月30日 20:21:19

2^x mod n = 1


题目链接


题目大意

    找到一个最小的x满足2x mod n = 1如果没有则输出2? mod n = 1


题解

    我们可以把式子化为(22x1) mod n = 1 首先可以看到2x是个偶数,要想让该式成立肯定n不能为偶数或者是1,有了这个结论后我们就可以把式子化为(2(2x1 mod n))mod n = 1于是我们设F(x1) = 2x1mod n 所以我们现在有

F(x)=(2F(x1))mod n

一直推直到F(x)为1就行了。


代码

#include <iostream>
#include <cstring>
#include <cstdio>

using namespace std;

int n;

int main()
{
    while(scanf("%d",&n)!=EOF)
    {
        if (n%2==0 || n==1)
        {
            printf("2^? mod %d = 1\n",n);
            continue ;
        }
        else
        {
            int ans=1,cnt=0;
            while (ans!=1 || cnt==0)
            {
                cnt++;
                ans=(ans*2)%n;
            }
            printf("2^%d mod %d = 1\n",cnt,n);
        }
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

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) ...
  • xieshimao
  • xieshimao
  • 2011年08月15日 15:47
  • 2893

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 ...
  • Lionel_D
  • Lionel_D
  • 2015年03月13日 09:27
  • 1254

HDU1395---2^x mod n = 1

2^x mod n = 1                                          Time Limit: 2000/1000 MS (Java/Others)    Me...
  • u013050857
  • u013050857
  • 2014年07月25日 14:56
  • 744

杭电1395 2^x mod n = 1

2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...
  • u013634213
  • u013634213
  • 2014年07月31日 09:11
  • 566

HDU——1395 2^x mod n = 1(取模运算法则)

2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...
  • a88770202
  • a88770202
  • 2016年02月15日 21:41
  • 319

HDU 1395 2^x mod n = 1

又是一道数学题 分析: 1、n==1或者n%2==0,都不会有这样的2的幂次存在。 因为2^k(k=1、2、3...)为偶数,n为偶数时显然不存在;n==1则容易验证。 2、n为奇数是则一定存...
  • Lulipeng_cpp
  • Lulipeng_cpp
  • 2012年08月02日 23:18
  • 1595

HDU 1395 2^x mod n = 1

2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...
  • yao1373446012
  • yao1373446012
  • 2016年06月19日 16:50
  • 187

hdu 1395 2^x mod n = 1

2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...
  • u014634338
  • u014634338
  • 2014年07月19日 17:31
  • 327

HDU 1395 2^x mod n = 1

/* 中文题意: 中文翻译: 题目大意:求出最小的 n 使得2的 I 次方对 n 的值为1. 解题思路:如下: 难点详解:先用费马小定理了解2的 i 次方对偶数取余都不可能是一,还有就是排除...
  • qq_16767427
  • qq_16767427
  • 2014年07月31日 12:19
  • 544

HDU 1395 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...
  • u013889450
  • u013889450
  • 2014年03月04日 22:36
  • 652
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【HDU】 1395 2^x mod n = 1
举报原因:
原因补充:

(最多只允许输入30个字)