hdu 4704 費馬小定理+普通快速冪

來源:互聯網
上載者:User

此題往後推幾步就可找到規律,從1開始,答案分別是1,2,4,8,16....

這樣就可以知道,題目的目的是求2^(n-1)%Mod的結果.....此時想,應該會想到快速冪...

然後用同餘定理,把餘數求出來就可以了...

#include<iostream>  #include<string>  #include<string.h>  #include<cstdio>  #include<algorithm>  using namespace std;  #define Mod 1000000007__int64 quick_pow(__int64 m,__int64 n){    __int64 ans=1;    while(n){        if(n&1)             ans=(ans*m)%Mod;        n=n>>1;        m=(m*m)%Mod;    }    return ans;}int main()  {      __int64 N, i, num, len;          char str[1000010];          while(~scanf("%s", str)){           num = 0;          len = strlen(str);          for(i = 0; i != len; ++i)          {              num = (num * 10 + (int)(str[i] - '0')) % 1000000006;           }          __int64 ans;        if(num==0){printf("%I64d\n",quick_pow(2,Mod-2));}else{  num--;ans=quick_pow(2,num);        printf("%I64d\n",ans);  }}    return 0;  }  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.