zoukankan      html  css  js  c++  java
  • 2^x mod n = 1 【杭电-HDOJ-1395】 附题

    /*
    2^x mod n = 1
    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 11800    Accepted Submission(s): 3673
    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

    */

    #include<stdio.h>
    int main()
    {
        int i,j,n,s;
        while(~scanf("%d",&n)){
          if(n==1||n%2==0)  
            printf("2^? mod %d = 1
    ",n);
          else{
              __int64  s=1;
              int i;
              for(i=1;;i++){
                  s*=2;
                  s%=n;        //控制s的值在一定范围内,乘2的同一时候对n取余 
                  if(s==1){    //  if(s%n==1) 
                     break;
                   }
               }
             printf("2^%d mod %d = 1
    ",i,n);
          }
       }
     return 0;
    }
    



  • 相关阅读:
    OC内存管理
    摘要算法
    加密算法
    编码技术
    Golang遇到的一些问题总结
    SignalR
    uni-app 小程序 vue
    C# 调用 C++ dll的两种方式
    Vue 项目 VSCode 调试
    Navicat 导出 表结构
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5117841.html
Copyright © 2011-2022 走看看