/* 약수 개수 구하는 함수
int f(int n)
{
int c=0;
for(int i=1; i<=n;i++)
{
if(n%i==0){
c++;
}
}
return c;
}
*/
/* 정수 뒤집어 리턴하기
long long int f(long long int n)
{
long long int k=0;
while(n!=0){
k=k*10+n%10;
n=n/10;
}
return k;
}*/
/* 최대공약수 리턴하기
int gcd(int a,int b)
{
int r=a%b;
while(r!=0){
a=b;
b=r;
r=a%b;
}
return b;
}*/
/* 배열의 최대값 위치 리턴하기
int maxi(int a,int b)
{
int c=a; //c== 최댓값의 위치
for(int i=a;i<=b;i++){
if(d[c]<d[i]){
c=i;
}
}
return c;
}*/
/* 어떤 값보다 크거나 같은 값이 처음 나타나는 위치를 출력하시오.
int lower_bound(int k)
{
for(int i=1;i<=n;i++){
if(d[i]>=k){
return i;
}
}
return n+1;
}*/
/* 어떤 값보다 큰 값이 처음 나타나는 위치를 출력하시오.
int upper_bound(int k)
{
for(int i=1;i<=n;i++){
if(d[i]>k){
return i;
}
}
return n+1;
}*/
/* 절대값 함수
#include<stdio.h>
float d(float n)
{
if(n<0){
n=n*(-1);
}
return n;
}
int main(){
float n;
scanf("%f",&n);
printf("%.7g",d(n));
}*/
/* 가장 큰 값 위치 리턴하기
int f()
{
int c=0;
for(int i=0;i<n;i++){
if(d[i]>d[c]){
c=i;
}
}
return c+1;
}*/
/* 받는 값 출력 값 형을 맞추어 주자 int*int는 int범위 내에서 같은 형끼리 비교 연산 해야함
int sqrt(long long int n)
{
if(n==0){
return 0;
}
for(int i=1;;i++){
if(n<(long long int)i*i){
return i-1;
}
}
}*/
/* 만약 1 2147483647 처럼 입력이 들어올 경우를 생각한다면 그치
long long int pow(int a, int n)
{
if(n==0){
return 1;
}
if(a==1){
return 1;
}
long long int b=(long long int)a;
for(int i=1;i<=n-1;i++){
b*=a;
}
return b;
}*/
/* self number 개 어려움//
int d(int a) 각 자릿수+본래 값
이 함수를 잘 정의하자
#include<stdio.h>
int memo[5001]={};
int d(int a)
{
int sum=a;
while(a>0)
{
sum+=a%10;
a=a/10;
}
return sum;
}
void self(int i)
{
memo[d(i)]=1;
}
int main(){
int a,b,i,sum=0;
scanf("%d %d",&a,&b);
for(int i=1;i<=5001;i++)
{
self(i);
}
for(i=a;i<=b;i++)
{
if(memo[i]==0)
{
sum+=i;
}
}
printf("%d",sum);
}
*/