B-Cracking the Code
4163 단어 구덩이
Status
Practice
CodeForces 630L Description The protection of a popular program developed by one of IT City companies is organized the following way. After installation it outputs a random five digit number which should be sent in SMS to a particular phone number. In response an SMS activation code arrives.
A young hacker Vasya disassembled the program and found the algorithm that transforms the shown number into the activation code. Note: it is clear that Vasya is a law-abiding hacker, and made it for a noble purpose — to show the developer the imperfection of their protection.
The found algorithm looks the following way. At first the digits of the number are shuffled in the following order . For example the shuffle of 12345 should lead to 13542. On the second stage the number is raised to the fifth power. The result of the shuffle and exponentiation of the number 12345 is 455 422 043 125 550 171 232. The answer is the 5 last digits of this result. For the number 12345 the answer should be 71232.
Vasya is going to write a keygen program implementing this algorithm. Can you do the same?
Input The only line of the input contains a positive integer five digit number for which the activation code should be found.
Output Output exactly 5 digits without spaces between them — the found activation code of the program.
Sample Input Input 12345 Output 71232
제목: 다섯 자리 수를 입력하고 12345로 가정하면 첫 번째 조작은 13542로 이동하고 두 번째 조작은 위치를 옮긴 후의 다섯 자리를 구하고 결과의 마지막 다섯 자리 71232를 출력한다.
이 문제는 매우 까다롭다. 데이터는 64비트의 무기호 정형을 써야 한다.갱점2: 출력은 자리 차지 문자를 가지고 해야 한다. 그렇지 않으면 출력이 다섯 자리 수가 부족한 상황이 나타날 수 있다. 만약에 조작 후 마지막 다섯 자리가 00011이라면 자리 차지 문자를 넣지 않으면 11만 출력할 수 있다(이 점은 특별히 갱이다. 나는 아홉 번이나 발견하지 못했는데 마침내 열 번째로 이 점을 생각했다)
아래 위 코드
#include<cstdio>
#include<stack>
#include<cstring>
#include<string>
#include<cctype>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
long long int n;
string str;
while(cin>>str)
{
n=(str[0]-'0')*10000+(str[1]-'0')+(str[2]-'0')*1000+(str[3]-'0')*10+(str[4]-'0')*100;
long long int num=1;
for(long long int i=0; i<5; i++)
num=num*n%100000;
printf("%05I64d
",num);//
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
react를 사용한 7개의 피갱 사례 소결사실 이 문제는 React 개발자에만 국한되지 않고 많은 Vue 개발자들도 그렇습니다. React에서, 우리는 여러 가지 작업을 수행하기 위해 많은 내용의 구성 요소를 만들 수 있지만, 가장 좋은 것은 구성 요소가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.