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
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema odaoni:
#include <fstream>
using namespace std;
ifstream f("odaoni.in");
ofstream g("odaoni.out");
int n,i,x,sol,r,v[10],ok;
int main()
{
f >> n ;
//cifrele lui n
x = n ;
while(x!=0)
{
r = x % 10 ;
v[r] = 1 ;
x = x / 10 ;
}
//divizorii lui n
sol = 0 ;
for( i = 1 ; i * i < n ; i++ )
if( n % i == 0 )
{
x = i ;
ok = 1 ;
while(x!=0)
{
r = x % 10 ;
if ( v[r]==0 ) ok = 0 ;
x = x / 10 ;
}
sol += ok ;
x = n / i ;
ok = 1 ;
while(x!=0)
{
r = x % 10 ;
if ( v[r]==0 ) ok = 0 ;
x = x / 10 ;
}
sol += ok ;
}
if( i * i == n )
{
x = i ;
ok = 1 ;
while(x!=0)
{
r = x % 10 ;
if ( v[r]==0 ) ok = 0 ;
x = x / 10 ;
}
sol += ok ;
}
g << sol ;
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #2407 odaoni
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2407 odaoni de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!