Dorel
a primit de ziua lui un tricou pe care era scris numărul n
.
Cerința
Aflaţi câţi divizori ai lui n
au mulţimea cifrelor din scrierea lor inclusă în mulţimea cifrelor din scrierea lui n
.
Date de intrare
Fișierul de intrare odaoni.in
conține pe prima linie numărul n
.
Date de ieșire
Fișierul de ieșire odaoni.out
va conține pe prima linie numărul divizorilor lui n
care au mulţimea cifrelor din scrierea lor inclusă în mulţimea cifrelor din scrierea lui n
..
Restricții și precizări
1 ≤ n ≤ 1.000.000.000
Exemplu
odaoni.in
12
odaoni.out
3
Explicație
Numărul 12
are divizorii 1,2,3,4,6,12
iar dintre aceştia numai 1,2,12
au mulţimea cifrelor inclusă în mulţimea cifrelor lui 12
.
#include <bits/stdc++.h> using namespace std; ifstream cin("odaoni.in"); ofstream cout("odaoni.out"); bool f[15]; int cnt; int main() { int n; cin >> n; int aux = n; while(aux!=0) { f[aux%10]=1; aux /= 10; } for(int j = 1 ; j*j <= n ; j++) { if(n%j==0) { int x = j , ok = 0 , y = n/j; bool fdiv1[11]={0}; while(x > 0) { fdiv1[x%10]=1; if(f[x%10]==0 && fdiv1[x%10]==1)ok=1; x /= 10; } if(ok==0) cnt++; ok = 0; bool fdiv2[11]={0}; while(y > 0) { fdiv2[y%10]=1; if(f[y%10]==0 && fdiv2[y%10]==1)ok=1; y /= 10; } if(ok==0) cnt++; if(j*j==n && ok == 0) cnt--; } } cout << cnt; }