1. C
#include <stdio.h>
#include <stdbool.h>
bool num[10000];
int Check(int n)
{
int sum = n;
while (n != 0)
{
sum += n % 10;
n = n / 10;
}
return sum;
}
int main()
{
for (int i = 0; i < 10000; i++)
{
int a = Check(i);
num[a] = true;
}
for (int i = 0; i < 10000; i++)
if (!num[i])
printf("%d \n", i);
return 0;
}
2. C++
#include <iostream>
#include <cstdio>
#define N 10001 //배열 생성 1~10000
using namespace std;
bool arr[N];
int Check(int n) //셀프 넘버 판별
{
int sum = n;
while (1)
{
if (n == 0)
break;
sum += n % 10;
n = n / 10;
}
return sum;
}
int main()
{
for (int i = 1; i < N; i++)
{
int a = Check(i);
if (a <= N)
arr[a] = true; // 셀프 넘버 아닌 수 true 변경
}
for (int i = 1; i < N; i++)
if (!arr[i])
printf("%d \n", i);
return 0;
}