Informatică, întrebare adresată de bianca2399, 9 ani în urmă

Fişierul atestat.in conţine două linii.Pe prima linie este scris un număr natural nenul n,(5<n<30). Pe cea de-a doua linie a fişierului sunt scrise n numere naturale separate prin câte un spaţiu, formate fiecare din cel mult 4 cifre şi cel puţin 2 cifre, reprezentând un şir de n numere naturale. Cel puţin unul din cele n numere din şir este număr par. Să se scrie un program, în limbajul C++, care:
a) afişează pe ecran, în linie, separate printr-un spaţiu, toate numerele pare din şir;
b) scrie în fişierul atestat.out, pe o linie separate prin câte un spaţiu, toate numerele perfecte
din şir. Un număr natural se numeşte perfect dacă suma divizorilor săi, exceptând numărul însuşi, este egală cu numărul dat, de exemplu: 28=1+2+4+7+14. Dacă nu există astfel de numere, se va scrie pe prima linie a fişierului mesajul “NU EXISTA NUMERE PERFECTE”.

Anexe:

Răspunsuri la întrebare

Răspuns de artur99
4
a)
#include <iostream>
#include <fstream>
using namespace std;
int main(){
    ifstream f("atestat.in");
    int n, i, t;
    f>>n;
    for(i=0;i<n;i++){
        f>>t;
        if(t%2==0) cout<<t<<" ";
    }
}

*****************************************************************
b)
#include <iostream>
#include <fstream>
using namespace std;
int main(){
    ifstream f("atestat.in");
    ofstream g("atestat.out");
    int n, i, t, d, sd, nr=0;
    f>>n;
    for(i=0;i<n;i++){
        f>>t;
        sd=0;
        for(d=1;d<=t/2;d++)
            if(t%d==0)
                sd=sd+d;
        if(t==sd){
            g<<t<<" ";
            nr++;
        }
    }
    if(nr==0)
        g<<"NU EXISTA NUMERE PERFECTE";
}

bianca2399: ;)
artur99: gata, si b)
artur99: ;)
artur99: amandoua functioneaza, testate in codeblocks :)))
bianca2399: merci
artur99: ;)
bianca2399: dar stii ar trebui cu tablouri facute
bianca2399: dar lasa
artur99: e mai rapid asa... daca nu ma'nsel :D
bianca2399: este dar eu așa trebuie sa le fac
Alte întrebări interesante