#include <iostream> unsigned long long a,i,c,licznik,suma,liczba; using namespace std; int main() { cin>>a>>i>>c; while(i<=c) { liczba=i; suma=0; while(liczba!=0) { if(i%a==0) { suma+=(liczba%10)*(liczba%10); liczba/=10; if(suma*a==i && liczba==0) licznik++; if(suma*a!=i && liczba==0) { if((suma+1215)*a<i) { i+=999999999999999-(i%1000000000000000); break; } if((suma+1134)*a<i) { i+=99999999999999-(i%100000000000000); break; } if((suma+1053)*a<i) { i+=9999999999999-(i%10000000000000); break; } if((suma+972)*a<i) { i+=999999999999-(i%1000000000000); break; } if((suma+891)*a<i) { i+=99999999999-(i%100000000000); break; } if((suma+810)*a<i) { i+=9999999999-(i%10000000000); break; } if((suma+729)*a<i) { i+=999999999-(i%1000000000); break; } if((suma+648)*a<i) { i+=99999999-(i%100000000); break; } if((suma+576)*a<i) { i+=9999999-(i%10000000); break; } if((suma+486)*a<i) { i+=999999-(i%1000000); break; } if((suma+405)*a<i) { i+=99999-(i%100000); break; } if((suma+324)*a<i) { i+=9999-(i%10000); break; } if((suma+243)*a<i) { i+=999-(i%1000); break; } if((suma+162)*a<i) { i+=99-(i%100); break; } if((suma+81)*a<i) { i+=9-(i%10); break; } //wieksze if((suma+81)*a>i) { i+=9-(i%10); break; } } } else break; } i++; } cout<<licznik; 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 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 109 110 111 112 113 | #include <iostream> unsigned long long a,i,c,licznik,suma,liczba; using namespace std; int main() { cin>>a>>i>>c; while(i<=c) { liczba=i; suma=0; while(liczba!=0) { if(i%a==0) { suma+=(liczba%10)*(liczba%10); liczba/=10; if(suma*a==i && liczba==0) licznik++; if(suma*a!=i && liczba==0) { if((suma+1215)*a<i) { i+=999999999999999-(i%1000000000000000); break; } if((suma+1134)*a<i) { i+=99999999999999-(i%100000000000000); break; } if((suma+1053)*a<i) { i+=9999999999999-(i%10000000000000); break; } if((suma+972)*a<i) { i+=999999999999-(i%1000000000000); break; } if((suma+891)*a<i) { i+=99999999999-(i%100000000000); break; } if((suma+810)*a<i) { i+=9999999999-(i%10000000000); break; } if((suma+729)*a<i) { i+=999999999-(i%1000000000); break; } if((suma+648)*a<i) { i+=99999999-(i%100000000); break; } if((suma+576)*a<i) { i+=9999999-(i%10000000); break; } if((suma+486)*a<i) { i+=999999-(i%1000000); break; } if((suma+405)*a<i) { i+=99999-(i%100000); break; } if((suma+324)*a<i) { i+=9999-(i%10000); break; } if((suma+243)*a<i) { i+=999-(i%1000); break; } if((suma+162)*a<i) { i+=99-(i%100); break; } if((suma+81)*a<i) { i+=9-(i%10); break; } //wieksze if((suma+81)*a>i) { i+=9-(i%10); break; } } } else break; } i++; } cout<<licznik; return 0; } |