YWC

백준/2231/분해합/C/Python 본문

공부/코테_문제풀이

백준/2231/분해합/C/Python

YWC 2023. 9. 6. 17:38

https://www.acmicpc.net/problem/2231

 

2231번: 분해합

어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이

www.acmicpc.net


1) C

#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable:4996)

int sumn(int n);
int main(void) {
    int t,check; t=check = 0;
    scanf("%d", &t);
    for (int i = 1; i < t; i++) {
        if(t==(i+sumn(i))){
            printf("%d", i);
            check = 1;
            return 0;
        }
    }
    printf("0");
    return 0;
}
int sumn(int n) {
    int res = 0;
    while (1) {
        res += (n % 10);
        n /= 10;
        if (n < 1) { break; }
    }
    return res;
}

2) Python

def solution1(number):
    result = number
    while(1):
        result += (number%10)
        if (number/10)<1:
            break
        number = number//10

    return result


def solution2(number):
    result =0
    for i in range(1, number+1):
        if solution1(i) == number:
            result = i
            break
    return result
    

if __name__=="__main__":
    N = int(input())
    print(solution2(N))

 


 

'공부 > 코테_문제풀이' 카테고리의 다른 글

백준/2798/블랙잭/C/Python  (0) 2023.09.11
백준/2292/벌집/C/Python  (0) 2023.09.11
백준/1978/소수찾기/Python  (0) 2023.09.05
백준/4153/직각삼각형/C/python  (0) 2023.09.04
백준/9655/돌게임/C  (1) 2023.04.14