24h購物| | PChome| 登入
2009-10-22 18:32:07| 人氣732| 回應0 | 上一篇 | 下一篇

算術基本原理

推薦 0 收藏 0 轉貼0 訂閱站台

題目意思為質數序列的次方%76543

接下來就利用分而治之加快計算次方的次數

/******************************************************/

#include<stdio.h>  
#include<stdlib.h>  
int Prime[5200]={0},p;  
int prime()  
{  
  char num[50001]={0};  
  int a,b,m=0;  
 for(a=2;a<50000;a++)     
      if(num[a]==0)     
        {     
           Prime[m++]=a;     
           for(b=2;a*b<=50000;b++)     
             num[a*b]=1;     
        }  
   return m;  
}  
long long int f(int m,int n, int mod)
{   
  long long int mul=m;   
  long long int r=1;   
  while(n)
   {   
      if(n&1)  r*=mul,r%=mod;
      mul*=mul,mul%=mod,n/=2;   
   }   
  return r;   
}
main()  
{  
 p=prime(); 
 long long int ANS=1;
 int n,time=0;
 while(scanf("%d",&n)==1)
      ANS*=f(Prime[time++],n,76543),ANS%=76543;
 printf("%lld\n",ANS);
 return 0;     
}  

台長: 來源不明
人氣(732) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ZeroJudge 基礎+原創題庫 |
此分類下一篇:Fibonacci 's computation process
此分類上一篇:hello, world

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文