HDU_5690_快速幂,同余的性质

All X

Time Limit: 2000/1000 MS (Java/Others)   

 Memory Limit: 65536/65536 K (Java/Others)


Problem Description
 
F(x,m) 代表一个全是由数字x组成的m位数字。请计算,以下式子是否成立:

F(x,m) mod k  c
 

 

Input
 
第一行一个整数T,表示T组数据。
每组测试数据占一行,包含四个数字x,m,k,c

1x

1m10^10

0c<k10,000
 

 

Output
 
对于每组数据,输出两行:
第一行输出:"Case #i:"。i代表第i组测试数据。
第二行输出“Yes” 或者 “No”,代表四个数字,是否能够满足题目中给的公式。
 

 

Sample Input
 
3
1 3 5 2
1 3 5 1
3 5 99 69
 

 

Sample Output
 
Case #1:
No
Case #2:
Yes
Case #3:
Yes
 
 同余的性质还需要熟悉。
思路:
 
m个x组成的数可以表示为x*(1+10+10^2+...+10^m-1)=x*(10^m-1)/9;
即x*(10^m-1)/9%k==c?    x*(10^m-1)%(9*k)==9*c
 
同余的性质:
  (1)自反性:a≡a(mod m).
  (2)对称性:若a≡b(mod m),则b≡a(mod m).
  (3)传递性:若a≡b(mod m),b≡c(mod m),则a≡c(mod m).
 
   若a1≡b1(mod m),a2≡b2(mod m),
  (4) 则a1+a2≡b1+b2(mod m)
    推论:若a+b≡c(mod m),则a≡c-b(mod m)
  (5)  a1a2≡b1b2(mod m).
   推论1:若a≡b(mod m),则ak≡bk(mod m),其中k为整数.
     推论2:若a≡b(mod m),则a^n≡b^n(mod m),其中n为自然数.
 
 
  (6)  若ac≡bc(mod m),(m,c)=d, 则a≡b(mod m/d).
    特别地,当(m,c)=1是,有a≡b(mod m).
  (7)  若a≡b(mod m),则ak≡bk(mod mk),其中k为大于零的整数;
     若a≡b(mod m),d为a,b及m 的任一正公约数,则a/d≡b/d(mod (m/d)).
  (8)  a≡b(mod mi),(1<=i<=n),则a≡b(mod [m1,m2,…,mn]).
  (9)  若a≡b(mod m),且d|m,则a≡b(mod d)
 
此题用到了第(7)条性质。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define LL long long

LL powMod(LL base,LL m,int mod)
{
    LL res=1;
    while(m)
    {
        if(m&1)
            res=(res*base)%mod;
        base=(base*base)%mod;
        m>>=1;
    }
    return(res%mod);
}

int main()
{
    int x,k,c,cas=1;
    LL m;
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%I64d%d%d",&x,&m,&k,&c);
        //cout<<"*"<<endl;
        int MOD=9*k;
        int tmp=powMod(10,m,MOD);
        //cout<<tmp<<endl;
        tmp=(tmp*x)%MOD;
        tmp-=(x%MOD);
        //cout<<tmp<<endl;
        printf("Case #%d:\n",cas++);
        if(tmp==9*c)
            printf("Yes\n");
        else
            printf("No\n");
    }
    return 0;
}

 

posted on 2016-08-16 11:15  JASONlee3  阅读(275)  评论(0编辑  收藏  举报

导航