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

In fisierul nunere.txt se gasesc cel mult 1 milion de nr. Intregi.Realizati un program care afiseaza in fisier:
a)Inversul celui mai mare nr.
b)Cate nr.prime sunt in fisier
c)c.m.m.d.c intre primul si ultimul nr.din fisier.
d)produsul factorilor primi din descompunerea sumei tuturor nr.din fisier,produs scris in baza doi
e)Suma cifrelor nr.din elemente care apartin sirului lui Fibonnaci.

Răspunsuri la întrebare

Răspuns de MihaiChirculete
0
Raspunsul la subpunctele a), b) si c)

#include <iostream>
#include <fstream.h>

ifstream f(numere.txt);

using namespace std;

// verifica daca un numar este prim
// returneaza 1 daca numarul este prim si 0 in caz contrar
int prim(int n)
{
    int d=0;
    for(int div=2; div<=n/2; div++)
        if(n%div == 0) d++;

    if(d==0) return 1;
    else return 0;        
}

// calculeaza cmmdc a doua numere si il returneaza
int cmmdc(int a, int b)
{
    while(a!=b)
        if(a>b) a=a-b;
        else b=b-a;

    return a;
}

int main()
{
    int nr, max, numerePrime=0, nr1;

    f >> nr1;
    max = nr1;

    while(f>>nr)
    {
        f>>nr;
        if(nr>max) max = nr;
        if(prim(nr)) numerePrime++;
    }

    int invers=0;
    while(max)
    {
        invers = (invers*10)+(max%10);
        max = max/10;
    }

    cout << "Inversul numarului maxim este: " << invers;
    cout << "Fisierul contine " << numerePrime << " numere prime."
    cout << "CMMDC primul si ultimul numar: " << cmmdc(nr1, nr);

    return 0;
}
Alte întrebări interesante