/*
水仙花数
*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int max(int a,int b){
if(a>b){
return a;
}
else{
return b;
}
}
int min(int a,int b){
if(a<b){
return a;
}
else{
return b;
}
}
int weishu(int n){
int i;
for(i=1;;i++){
n=n/10;
if(n==0){
break;
}
}
return i;
}
/*
计算位数的函数是核心
使用for循环
依次让n/10,一旦n等于0,跳出循环,每次i递增
i就代表这个数有几位
返回i
借用C语言舍弃位数的机制
可以使用do-while循环
do{
i++;
n=n/10;
}while(n != 0);
return i;
*/
int function(int a, int b){
int m=max(a,b),n=min(a,b);
int sum=0,summ=0,c,f;
/*
判断a,b的大小关系
确定上下界
*/
for(int i=n;i<=m;i++){
c=i;
f=weishu(i);
if(f<3){
continue;
}
else{
for(int j=0;j<f;j++){
sum=sum+pow(c%10,f);
c=c/10;
}
}
if(sum==i){
summ=summ+1;
}
sum=0;
}
return summ;
}
int main(){
int a,b;
scanf("%d %d",&a,&b);
printf("%d",function(a,b));
return 0;
}