Documente Academic
Documente Profesional
Documente Cultură
#include <iostream>
#include <fstream>
int main()
{
ifstream fin ("numere.in");
ofstream fout ("numere.out");
int n, x, cx, c;
fin >> n;
for (int i = 1; i<=n; i++) {fin >> x;
cx = x;
if (x%9!=0) c = x%9;
else c = 9;
if (c%2==1) fout << cx << " ";
}
fin.close ();
fout.close ();
return 0;
}
2.
Cerința
Se citesc pe rând numere naturale nenule. Să se determine câte din numerele citite sunt
termeni ai șirului lui Fibonacci.
Date de intrare
Fișierul de intrare cautafibo.in conține numere naturale nenule, separate prin spații.
Date de ieșire
Fișierul de ieșire cautafibo.out va conține o singură valoare, reprezentând numărul
termenilor Fibonacci care se regăsesc în fișierul de intrare.
Restricții și precizări
numerele din fișierul de intrare vor avea cel mult 10 cifre
fișierul de intrare va conține cel mult 100.000 de numere naturale nenule
Exemplu
cautafibo.in
5 10 89 1 7 9 8 1 6 55 19 13 55
cautafibo.out
8
Explicație
Numerele Fibonacci din fișierul de intrare sunt: 5 89 1 8 1 55 13 55
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream fin ("cautafibo.in");
ofstream fout ("cautafibo.out");
int x, f1, f2, f3, ct = 0;
while (fin >> x) {f1 = 0; f2 = 1;
do {f3 = f1 + f2; f1 = f2; f2 = f3;} while (f3 < x);
if (f3==x) ct++;}
fout << ct;
fin.close ();
fout.close ();
return 0;
}
3.
Din fișierul numere.in se citesc numere naturale.
Afișați în fișierul numere.out numerele din fișierul de intrare care au exact 3 factori primi.
#include <iostream>
#include <fstream>
int main()
{
ifstream fin ("numere.in");
ofstream fout ("numere.out");
int n, x, cx, c;
fin >> n;
for (int i = 1; i<=n; i++) {fin >> x;
cx = x;
if (x%9!=0) c = x%9;
else c = 9;
if (c%2==1) fout << cx << " ";
}
fin.close ();
fout.close ();
return 0;
}
4.
Din fișierul numere.in se citesc numere naturale.
Afișați pe ecran cele mai mari două numere prime.
#include <iostream>
#include <fstream>
int main()
{
int x, mx1 = 0, mx2 = 0, ok;
while (fin>>x) {ok = 1;
if (x<2 || x>2 && x%2==0) ok = 0;
for (int d = 3; d*d<=x && ok==1; d+=2) if (x%d==0) ok = 0;
if (ok==1 && x>mx1) {mx2 = mx1; mx1 = x;}}
#include <iostream>
#inlude <fstream>
using namespace std;
int main()
{
int x, y, r;
fin >> x;
while (fin>>y) {while (y!=0) {r = x%y; x = y; y = r;}}
fout << x;
fin.close ();
fout.close ();
}
6.
Din fișierul numere.in se citesc numere naturale.
Afișați, în fișierul numere.out , numărul care se formează cu cifra maximă a fiecărui număr
din fișierul de intrare.
numere.in
123 45 674 9 554 7 100
numere.out
3579571
#include <iostream>
#inlude <fstream>
using namespace std;
int main()
{
int x, y, r;
fin >> x;
while (fin>>y) {while (y!=0) {r = x%y; x = y; y = r;}}
fout << x;
fin.close ();
fout.close ();
}
7.
Din fișierul numere.in se citesc numere naturale.
Afișați în fișierul numere.out cel mai mic și cel mai mare număr din fișierul de intrare.
Fiecare număr va fi afișat pe o linie a fișierului de ieșire și va fi urmat de divizorii săi, afișați în
pereche.
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("numere.in");
ofstream fout ("numere.in");
int main()
{
int x, mx, mn, d;
fin >> x;
mx = x;
mn = x;
while (fin >> x) {if (x>mx) mx = x;
if (x<mn) mn = x;}
fout << mx << " ";
for (d = 1; d*d<=mx; d++) {if (mx%d==0) {if (d*d==mx) cout << d << " ";
else cout << d << " " << mx/d << " ";}}
fout << endl << mn;
for (d = 1; d*d<=mn; d++) {if (mn%d==0) {if (d*d==mn) cout << d << " ";
else cout << d << " " << mn/d << " ";}}
fin.close ();
fout.close ();
return 0;
}
8.
Din fișierul numere.in se citesc numere naturale.
Afișați, în fișierul numere.out , fiecare număr din fișierul de intrare fără cifrele pare.
numere.in
123 45 674 9 554 7 100 8
numere.out
13 5 7 9 55 7 1 0
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream fin ("numere.in");
ofstream fout ("numere.out");
int x, nr, p, c;
while (fin >> x) {nr = 0; p = 1;
while (x>0) {c = x%10;
if (c%2!=0) {nr = nr + c*p;
p = p*10;}
x/=10;
}
fout << nr << " ";}
fin.close ();
fout.close ();
return 0;