https://www.acmicpc.net/problem/2028
자가복제수를 찾는 문제. 자가복제수란, 자연수 n을 제곱했을 때, 그 제곱수의 맨 뒷자리에 원래의 n이 나타나는 수를 의미한다. n과 n^2를 10으로 나눈 나머지를 계속 비교해가며 풀면 된다.
#include <stdio.h>
int main () {
int t, n, square;
int flag;
scanf("%d", &t);
while (t--) {
flag = 1;
scanf("%d", &n);
square = n*n;
while (n) {
if (n % 10 != square % 10) flag = 0;
n/=10; square /= 10;
}
printf("%s\n", flag ? "YES" : "NO");
}
return 0;
}
'coding_test > BAEKJOON' 카테고리의 다른 글
백준 2805번 C++ 풀이 (0) | 2022.01.12 |
---|---|
백준 1654번 C++ 풀이 (0) | 2022.01.11 |
백준 7568번 C++ 풀이 (0) | 2022.01.08 |
백준 10816번 C++ 풀이 (0) | 2022.01.05 |
백준 10815번 C++ 풀이 (0) | 2022.01.05 |