1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
#include <iostream>
//#include <math.h>
int potega(int a)
{
    switch(a)
    {
    case 0:
        return 0;
        break;
    case 1:
        return 1;
        break;
    case 2:
        return 4;
        break;
    case 3:
        return 9;
        break;
    case 4:
        return 16;
        break;
    case 5:
        return 25;
        break;
    case 6:
        return 36;
        break;
    case 7:
        return 49;
        break;
    case 8:
        return 64;
        break;
    case 9:
        return 81;
        break;
    }
}
bool f(long long ak,long long a)
{
    long maks;
    if(ak>999999999999999999)
        maks=1539;
    else if(ak>99999999999999999)
        maks=1458;
    else if(ak>9999999999999999)
        maks=1377;
    else if(ak>999999999999999)
        maks=1296;
    else if(ak>99999999999999)
        maks=1215;
    else if(ak>9999999999999)
        maks=1134;
    else if(ak>999999999999)
        maks=1053;
    else if(ak>99999999999)
        maks=972;
    else if(ak>9999999999)
        maks=891;
    else if(ak>999999999)
        maks=810;
    else if(ak>99999999)
        maks=729;
    else if(ak>9999999)
        maks=648;
    else if(ak>999999)
        maks=567;
    else if(ak>99999)
        maks=486;
    else if(ak>9999)
        maks=405;
    else if(ak>999)
        maks=324;
    else if(ak>99)
        maks=243;
    else if(ak>9)
        maks=162;
    else
        maks=81;
    if(maks<a)
        return false;
    long long int w=0;
    for(; ak>0; ak/=10)
    {
        w+=potega(ak%10);
        //w+=(ak%10)*(ak%10);
        if(w>a)
            return false;
    }
    if(w==a)
        return true;
    return false;
}
int main()
{
    long long ak,bk,k,a,b,wyn=0;
    std::cin>>k>>ak>>bk;
    //k=20,ak=pow(10,16),bk=pow(10,16)+pow(10,11);
    if(ak%k!=0)
        ak+=k-(ak%k);
    b=bk/k;
    a=ak/k;
    for(; a<=b; a++,ak+=k)
        if(f(ak,a))
            wyn++;
    std::cout<<wyn;
    return 0;
}