Cerinţa
Să se determine toate submulţimile cu m
elemente ale mulţimii divizorilor unui număr natural x
dat.
Date de intrare
Fişierul de intrare submdiv.in
conţine pe prima linie numerele x
şi m
,cu semnificaţia din enunţ.
Date de ieşire
Fişierul de ieşire submdiv.out
va conţine pe fiecare linie câte o submulţime determinată. Aceste submulţimi for fi afişate în ordine lexicografică. Pentru fiecare submulţime se vor afişa elementele în ordine crescătoare, separate printr-un spaţiu.
Restricţii şi precizări
1 ≤ m ≤ 6
1 ≤ x ≤ 1000
- dacă nu există soluţie, pe prima linie a fişierului
submdiv.out
se va afişa mesajulfara solutie
Exemplu
submdiv.in
45 4
submdiv.out
1 3 5 9 1 3 5 15 1 3 5 45 1 3 9 15 1 3 9 45 1 3 15 45 1 5 9 15 1 5 9 45 1 5 15 45 1 9 15 45 3 5 9 15 3 5 9 45 3 5 15 45 3 9 15 45 5 9 15 45
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 SubmDiv:
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("submdiv.in");
ofstream fout("submdiv.out");
int n,X,x[100],v[100],m;
int nrsol;
void afis(int n){
nrsol ++;
for(int i=1;i<=n;++i)
fout << v[x[i]] << " ";
fout << "
";
}
void back(int k){
for(int i=x[k-1]+1;i<=n;++i){
x[k] = i;
if(k==m)
afis(k);
else
back(k+1);
}
}
int main(){
fin >> X >> m;
n = 0;
for(int i=1;i<=X;++i)
if(X%i==0)
v[++n] = i;
back(1);
if(nrsol==0)
fout << "fara solutie";
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 #201 SubmDiv
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #201 SubmDiv 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!