安全密码安全密码安全密码
题目
密码在我们日常生活中经常要用到,如邮箱密码、QQ密码等,设置一般的密码很容易破解的哦,千万不要用你的出生年月作为你的密码,那样很不安全。小K用到了一种比较安全的密码设置方法:密码由三个正整数a,b,ca,b,ca,b,c经过计算aaa的bbb次方除以c$的余数得到。现在请你编写一个程序,计算的余数得到。现在请你编写一个程序,计算的余数得到。现在请你编写一个程序,计算ab mod c$ 的值
输入
从文件password.inpassword.inpassword.in中读入数据,文件中只有一行,依次为三个正整数a,b,ca,b,ca,b,c,三个正整数之间用空格隔开
输出
结果输出到文件password.outpassword.outpassword.out中,只有一个数,表示计算得到的结果。
输入样例
password.in
2 3 7
输出样例
password.out
1
数据范围说明
606060%的数据中,aaa的bbb次方的值在longintlongintlongint范围内
707070% 的数据中,a的b次方的值在int64int64int64范围内
100100100%的数据中,a,b,ca,b,ca,b,c 的值小于100010001000
解题思路
这题如果直接先算完次方再取模,那会出现太大的情况
因此我们应该每次乘完一次后再取模即可
程序如下
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a,b,c,sum,ans;
int main()
{
freopen("password.in","r",stdin);
freopen("password.out","w",stdout);
scanf("%d%d%d",&a,&b,&c);
sum = 1;
for(int i = 1; i <= b; ++i)
{
sum *= a;
ans = sum % c;
sum %= c;
}
printf("%d",ans);
return 0;
}
本文介绍了一种基于数学运算的安全密码生成方法,通过计算特定整数的幂次方并取模来生成密码,避免了常见的密码安全性问题。文章提供了完整的算法实现代码,并详细解释了解题思路。
508

被折叠的 条评论
为什么被折叠?



