高级机密

很久以前,罗马人为了在战争中传递信息,频繁地使用替换法进行信息加密。然而在计算机技术高速发展的今天,这种替换法显得不堪一击。因此密码研究人员正在试图寻找一种易于编码、但不易于解码的规则。

目前比较流行的编码规则称为RSA,是由美国麻省理工学院的三位教授发明的。这种编码规则是基于一种求密取模算法的:对于给定的三个正整数abc,计算ab次方除以c的余数。

你的任务是编写一个程序,计算ab mod c

                                                                                                                      .

输入只有一行,分别为abc,三个正整数一个空格隔开,输出结果

Simple input

Output for the input

2 6 11

3 4 5

10 10 100

45 67 89

 

9

1

0

45

 

解:

由于a b 可能很大,所以直接计算ab有可能产生溢出,本题考的是取模运算的一个性质:

x×y mod z x×(y mod z mod z

                                                                                                                      .

有了这个性质,这道题就很容易解决了

 

代码:

 

#include < stdio.h >
#include
< string .h >
#include
< stdlib.h >

void  main(){
    
int  a,b,c,result;
    
while ( 1 ){
        scanf(
" %d%d%d " , & a, & b, & c);
        
if (a == 0 return ;
        result
= 1 ;
        
while (b -- ){
            result
= result * a % c;
        }
        printf(
" %d " ,result);
    }
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值