Informatică, întrebare adresată de craciunmara, 8 ani în urmă

Dănuţ este foarte pasionat de probleme de divizibilitate. El a descoperit că unele numere, ca de exemplu 2316, au proprietatea că se divid cu toate cifrele lor. El verifică această proprietate doar pentru cifrele nenule, deoarece ştie că împărţirea la 0 nu este definită. Andrei ar dori să afle câte numere cu proprietatea precizată se găsesc într-un interval dat dar i-ar lua prea mult timp să verifice singur, în cazul în care intervalul ar fi prea mare. Ajutaţi-l să utilizeze calculatorul pentru aflarea rezultatului.
Cerinţă

Scrieţi un program care, pentru un interval dat [a,b], determină câte numere din interval sunt divizibile cu toate cifrele nenule ale lor.
Date de intrare

Fişierul de intrare numere12.in conţine pe prima linie două numere naturale a şi b separate prin spaţiu, reprezentând extremităţile intervalului.
Date de ieşire

Fişierul de ieşire numere12.out va conţine numărul de numere din intervalul [a,b] care sunt divizibile cu toate cifrele nenule ale lor.
Restricţii

• 1 ≤ a ≤ b ≤ 1000000
Exemple

numere12.in numere12.out Explicaţii
8 20
7
În intervalul [8,20] sunt 7 numere care sunt divizibile cu toate cifrele nenule ale lor : 8 9 10 11 12 15 20.
47 80
8
În intervalul [47,80] sunt 8 numere care sunt divizibile cu toate cifrele nenule ale lor : 48 50 55 60 66 70 77 80.
numere12 de pe campion.ro va rog urgent! in c++ neaparat de clasa a 9-a

Răspunsuri la întrebare

Răspuns de Mghetes
0

Răspuns:

#include <iostream>

using namespace std;

int main() {

 int n, nr, uc, a, b, i, ok, x;

 

 cout <<"a=";

 cin >> a;

 

 cout <<"b=";

 cin >> b;

 

 nr = 0;

 for(i = a; i<= b; i++)

 {

     ok = 1; // pp ca nr se imparte la toate cifrele nenule

     x = i;  

     while(x > 0 && ok == 1) // cat timp mai avem cifre de verificat in nr si nu am gasit o cifra care sa nu divida nr

     {

         uc = x % 10;

         x = x / 10;

     

         if (uc > 0 && i % uc > 0) // daca ultima cifra > 0 si nr nostru impartit la cifra da un rest > 0

         {

             ok = 0;

         }

     }

     

     if(ok == 1)

     {

         cout<< i << " ";

         nr++;

     }

 }

 

 cout <<endl<< "nr = " << nr;

 

 return 0;

}


Mghetes: nu am facut cu fisiere, dar se poate ajusta citirea si scrierea in fisier
craciunmara: ok multumesc mult sper sa mearga:)
Mghetes: functioneaza, e testat
Alte întrebări interesante