• 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 Submission(s): 17023    Accepted Submission(s): 5313


    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, 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
     
    Author
    MA, Xiao
     
    Source
     
    Recommend
    Ignatius.L   |   We have carefully selected several similar problems for you:  2462 2421 2521 1695 2466 
    直接暴力,偶数和1不可能,其余奇数都可以
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<vector>
    #include<queue>
    #include<cmath>
    using namespace std;
    #define maxn 1010
    int main()
    {
        int n;
        while(~scanf("%d",&n))
        {
            if(n%2==0||n==1)
            {
                printf("2^? mod %d = 1
    ",n);
                continue;
            }
            int m = 1,num;
            for(int i=1; ;i++)//因为绝对可以,所以这里写成死循环,暴力
            {
                m = m * 2;
                m = m%n;//注意这里要取余!!!
                if(m%n==1)
                {
                    num = i;
                    break;
                }
    
            }
            printf("2^%d mod %d = 1
    ",num,n);
        }
        return 0;
    }
    彼时当年少,莫负好时光。
  • 相关阅读:
    automaticallyAdjustsScrollViewInsets
    Quartz 2D绘图
    手势识别
    多视图控制器跳转方法
    NSString和NSDate的转换
    遍历子视图中某个类型控件方法
    发布程序后的NSLog批处理
    searchDisplayController用法
    UIImagePickerController使用方法
    沙盒目录常用获取方式
  • 原文地址:https://www.cnblogs.com/l609929321/p/6606391.html
Copyright © 2020-2023  润新知