Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <algorithm>
- #include <math.h>
- #include <vector>
- #include <fstream>
- using namespace std;
- /*
- long long len(long long n)
- {
- if (n < 100000) {
- if (n < 100) {
- if (n < 10) {
- return 1;
- } else {
- return 2;
- }
- } else {
- if (n < 1000) {
- return 3;
- } else {
- if (n < 10000) {
- return 4;
- } else {
- return 5;
- }
- }
- }
- } else {
- if (n < 10000000) {
- if (n < 1000000) {
- return 6;
- } else {
- return 7;
- }
- } else {
- if (n < 100000000) {
- return 8;
- } else {
- if (n < 1000000000) {
- return 9;
- } else {
- return 10;
- }
- }
- }
- }
- }
- long long getSnum(long long a)
- {
- long long res = a;
- long long L = len(a);
- long long t = 0;
- string s;
- for (long long i = a-1; (i >= 1) && (L < 6) ; i--)
- {
- long long st = len(res);
- t = i * pow(10, st);
- if (t % 10 != 0) t++;
- //cout << "t" << t << " * " << i * pow(10, s.length()) << endl;
- //cout << "s len " << s.length() << " res " << res << " t " << t << endl;
- res = t + res;
- L += st;
- //cout << "s " << s << " res " << res << " i " << i << " L " << L << endl;
- }
- return res;
- }
- */
- int main()
- {
- /*long long a, n;
- cin >> a >> n;
- cout << getSnum(a, n);*/
- long long k = 0;
- long long M, N;
- cin >> M >> N;
- long long num = 0;
- long long D = pow(2, N);
- /*for (long long i = 2; i <= M; i += 2)
- {
- num = getSnum(i);
- //cout << "i" << i << " " << num << endl;
- if (num % D == 0) k++;
- }*/
- if (N == 1) {
- k = M/2;
- } else if (N == 2) {
- for (long long i = 2; i <= M; i+=2) {
- if (i/10 > 0) {
- num = i;
- } else {
- num = (i-1)*10 + i;
- }
- if (num % D == 0) k++;
- }
- } else if (N == 3) {
- for (long long i = 4; i <= M; i+=2) {
- if (i/100 > 0) {
- num = i;
- } else if (i/10 > 0) {
- num = (i-1)*100 + i;
- } else {
- num = (i-2)*100 + (i-1)*10 + i;
- }
- if (num % D == 0) k++;
- }
- } else if (N == 4) {
- for (long long i = 4; i <= M; i+=2) {
- if (i/1000 > 0) {
- num = i;
- } else if (i/100 > 0) {
- num = (i-1)*1000 + i;
- } else if (i/10 > 0) {
- num = (i-1)*100 + i;
- } else {
- num = (i-3)*1000 + (i-2)*100 + (i-1)*10 + i;
- }
- if (num % D == 0) k++;
- }
- } else if (N == 5) {
- for (long long i = 4; i <= M; i+=2) {
- if (i/10000 > 0) {
- num = i;
- } else if (i/1000 > 0) {
- num = (i-1)*10000 + i;
- } else if (i/100 > 0) {
- num = (i-1)*1000 + i;
- } else if (i/10 > 0) {
- num = (i-2)*10000 + (i-1)*100 + i;
- } else {
- num = (i-4)*10000 + (i-3)*1000 + (i-2)*100 + (i-1)*10 + i;
- }
- if (num % D == 0) k++;
- }
- } else {
- for (long long i = 4; i <= M; i+=2) {
- if (i/100000 > 0) {
- num = i;
- } else if (i/10000 > 0) {
- num = (i-1)*100000 + i;
- } else if (i/1000 > 0) {
- num = (i-1)*10000 + i;
- } else if (i/100 > 0) {
- num = (i-1)*1000 + i;
- } else if (i/10) {
- num = (i-2)*10000 + (i-1)*100 + i;
- } else {
- num = (i-5)*100000 + (i-4)*10000 + (i-3)*1000 + (i-2)*100 + (i-1)*10 + i;
- }
- if (num % D == 0) k++;
- }
- }
- cout << k;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement