#include <cstdio> #include <cstdint> #include <cinttypes> bool test(uint64_t number) { // size_t size = sizeof(uint64_t); uint8_t digit; uint8_t i = 0; uint64_t temp = number; while (temp) { digit = temp % 10; temp /= 10; if (digit == 0) { return false; } if (number % digit != 0) { return false; } } return true; } int main() { uint64_t l, r; int num = 0; scanf("%" PRIu64 " %" PRIu64 "", &l, &r); if (l >= 1 && r >= l && r < 10e18 && l < 10e18) { for (l; l <= r; l++) { if (test(l)) { num++; } } printf("%d\n", num); return 0; } else { return -1; } }
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 | #include <cstdio> #include <cstdint> #include <cinttypes> bool test(uint64_t number) { // size_t size = sizeof(uint64_t); uint8_t digit; uint8_t i = 0; uint64_t temp = number; while (temp) { digit = temp % 10; temp /= 10; if (digit == 0) { return false; } if (number % digit != 0) { return false; } } return true; } int main() { uint64_t l, r; int num = 0; scanf("%" PRIu64 " %" PRIu64 "", &l, &r); if (l >= 1 && r >= l && r < 10e18 && l < 10e18) { for (l; l <= r; l++) { if (test(l)) { num++; } } printf("%d\n", num); return 0; } else { return -1; } } |