#include<cstdio>
#include<ctime>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<bitset>
using namespace std;
typedef long long ll;
typedef double db;
void gn(int &x){
int sg=1;char c;while(((c=getchar())<'0'||c>'9')&&c!='-');
if(c=='-')sg=-1,x=0;else x=c-'0';
while((c=getchar())>='0'&&c<='9')x=x*10+c-'0';
x*=sg;
}
void gn(ll &x){
int sg=1;char c;while(((c=getchar())<'0'||c>'9')&&c!='-');
if(c=='-')sg=-1,x=0;else x=c-'0';
while((c=getchar())>='0'&&c<='9')x=x*10+c-'0';
x*=sg;
}
//const int mo=1000000007;
int gcd(int a,int b){
return b?gcd(b,a%b):a;
}
int f(ll n){
int an=0;
while(n){
an+=(n%10)*(n%10);
n/=10;
}
return an;
}
int check(ll i,ll n){
return f(n)==i;
}
int main()
{
ll k,a,b;
cin>>k>>a>>b;
int ans=0;
for (int i=1;i<=1500;i++)if(k<=b/i && k*i>=a)ans+=check(i,k*i);
printf("%d\n",ans);
return 0;
}
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 | #include<cstdio> #include<ctime> #include<algorithm> #include<cstring> #include<iostream> #include<cstdlib> #include<cmath> #include<vector> #include<map> #include<set> #include<queue> #include<bitset> using namespace std; typedef long long ll; typedef double db; void gn(int &x){ int sg=1;char c;while(((c=getchar())<'0'||c>'9')&&c!='-'); if(c=='-')sg=-1,x=0;else x=c-'0'; while((c=getchar())>='0'&&c<='9')x=x*10+c-'0'; x*=sg; } void gn(ll &x){ int sg=1;char c;while(((c=getchar())<'0'||c>'9')&&c!='-'); if(c=='-')sg=-1,x=0;else x=c-'0'; while((c=getchar())>='0'&&c<='9')x=x*10+c-'0'; x*=sg; } //const int mo=1000000007; int gcd(int a,int b){ return b?gcd(b,a%b):a; } int f(ll n){ int an=0; while(n){ an+=(n%10)*(n%10); n/=10; } return an; } int check(ll i,ll n){ return f(n)==i; } int main() { ll k,a,b; cin>>k>>a>>b; int ans=0; for (int i=1;i<=1500;i++)if(k<=b/i && k*i>=a)ans+=check(i,k*i); printf("%d\n",ans); return 0; } |
English