#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; } |