#include<iostream> #include <stdio.h> #include <stdlib.h> using namespace std; long long int ToInt( char c) { return (long long int )(c - '0'); } int NumbOfDig(long long int _tmp) { int digits = 0; while (_tmp) { _tmp /= 10; digits++; } return digits; } bool IsPotyczkow(long long int _tmp) { char numb[16]; snprintf(numb,16,"%ld",_tmp); for(int i=0;i<NumbOfDig(_tmp);i++) { if(numb[i]=='0') return false; if (_tmp % ToInt( numb[i]) != 0) return false; } return true; } int main() { long long int r,l,counter=0,i; scanf ("%ld %ld",&r,&l); for(i=r;i<=l;i++) { if(IsPotyczkow(i)==true) counter++; } printf("%d", counter); 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 | #include<iostream> #include <stdio.h> #include <stdlib.h> using namespace std; long long int ToInt( char c) { return (long long int )(c - '0'); } int NumbOfDig(long long int _tmp) { int digits = 0; while (_tmp) { _tmp /= 10; digits++; } return digits; } bool IsPotyczkow(long long int _tmp) { char numb[16]; snprintf(numb,16,"%ld",_tmp); for(int i=0;i<NumbOfDig(_tmp);i++) { if(numb[i]=='0') return false; if (_tmp % ToInt( numb[i]) != 0) return false; } return true; } int main() { long long int r,l,counter=0,i; scanf ("%ld %ld",&r,&l); for(i=r;i<=l;i++) { if(IsPotyczkow(i)==true) counter++; } printf("%d", counter); return 0; } |