5948

#include <stdio.h>

int main(void){
    // 숫자 입력
    int num = 0;
    scanf("%d", &num);

    // 숫자가 1~9999까지 방문 유무를 저장하는 배열
    int visited[10000] = {0};
    int count = 0;

    // 만약 해당 숫자가 아직 방문 전이면 반복
    while(!visited[num]){
        visited[num] = 1;
        count++;

        // 중간 숫자, 중간 숫자의 제곱 구하기
        int middle = (((num/100)%10)*10) + ((num/10)%10);
        int square = middle * middle;

        // 현재 num에 중간 숫자의 제곱값인 square 넣기
        num = square;
    }

    // 카운트 횟수 출력
    printf("%d", count);
    return 0;
}

 

'백준' 카테고리의 다른 글

[ 백준 / C ] 1874번 : 스택 수열  (0) 2025.11.26
[ 백준 / C ] 9012번 : 괄호  (0) 2025.11.25
[ 백준 / C ] 9093번 : 단어 뒤집기  (0) 2025.11.21
[ 백준 / C ] 10828번 : 스택  (0) 2025.11.21
[ 백준 / C ] 5635번 : 생일  (0) 2025.11.20

+ Recent posts