Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*................................................................Zadatak1.............................................................
- Poštujući sve faze procesa programiranje napisati program koji korisniku omogućava unos cijelog broja N, te izračunava vrijednost sume faktorijela neparnih brojeva u intervalu [1, N] koji nisu djeljivi sa brojem 7. Rezultat treba biti zaokružen na dvije decimale. Suma faktorijela prikazana je sljedećom formulom:
- S = 1! + 3! + 5! + … + N!
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int main() {
- int n, faktorijel = 1, suma = 0;
- cout << "Unesi cijeli broj N : ";
- cin >> n;
- for (int i = 1; i <= n; i++) {
- faktorijel = faktorijel * i;
- if (i % 2 != 0) {
- if (i % 7 != 0) {
- suma = suma + faktorijel;
- cout << i << "!";
- if (i < n)
- cout << " + ";
- }
- }
- }
- cout << " = " << setiosflags(ios::fixed) << setprecision(2) << suma * 1.0 << endl;
- system("pause>null");
- return 0;
- }
- /*..............................................................Zadatak2...............................................................
- Napisati program u kojem je potrebno unijeti odabrani broj znamenaka počevši od znamenke najveće težinske vrijednosti, pa od njih sastaviti i ispisati prirodni broj. Unos znamenaka se prekida kada se unese broj manji od 0 ili veći od 9. Ispisati poruku ukoliko je dobiveni broj savršen. Ispis neka bude oblika:
- Primjer izlaza:
- Upisi znamenku:2
- Upisi znamenku:8
- Upisi znamenku:-1
- ...
- Broj sastavljen od zadanih znamenaka je 28.
- Broj je savršen.
- Savršenim se naziva onaj prirodni broj kojim je zbroj pozitivnih djelitelja različitih od sebe samog jedanak samom tom broju. Najmanji broj koji ima ovakva svojstva je broj 6. Zbroj njegovih djelitelja (osim broja 6) jednak je upravo tom broju.
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- void Savrsen(int);
- int main() {
- int broj, rezultat = 0, privremena;
- cout << "Unesite znamenke : ";
- cin >> broj;
- while (broj >= 0 && broj <= 9) {
- privremena = broj % 10;
- rezultat = rezultat * 10 + privremena;
- cin >> broj;
- }
- cout << rezultat << endl;
- Savrsen(rezultat);
- system("pause>null");
- return 0;
- }
- void Savrsen(int x) {
- int suma = 0;
- for (int i = 1; i < x; i++) {
- if (x%i == 0)
- suma += i;
- }
- if (suma == x)
- cout << "Broj je savrsen";
- else
- cout << "Broj nije savrsen";
- }
- /*.............................................................Zadatak3................................................................
- Napisati program koji korisniku omogućava unos realnog broja x, cijelog broja m i odabir funkcije za proračun datog izraza. Korisnik bira funkciju unosom jednog od sljedećih karaktera: 's' (sin), 'c' (cos), 'q' (sqrt) i 'p' (pow). U slučaju da korisnik unese karakter koji ne odgovara niti jednoj od predefinisanih vrijednosti ispisati odgovarajuću poruku i ponoviti odabir. Funkciji pow postavite broj 2 za drugi parametar.
- Za odabranu funkciju sin izraz je:
- f(x,m)=1+1/sin〖(x)+x〗 +2/(sin(x/2)+x)+(…)+m/(sin(x/m)+x)
- Broj faktora u izrazu odgovara unesenom broju m. U rješenju obavezno iskoristiti switch iskaz.
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int main() {
- int x, m;
- float si = 1, co = 1, korjen = 1, kvadrat = 1;
- char izbor;
- cout << "Unesite parametre m i x : ";
- cin >> m >> x;
- do
- {
- cout << "Unesite 's' (sin), 'c' (cos), 'q' (sqrt) i 'p' (pow) : ";
- cin >> izbor;
- switch (izbor)
- {
- case 's':
- for (int i = 1; i <= m; i++)
- {
- float xi = x / i;
- si += (i) / (sin(xi) + x);
- cout << "Funkcija sinus je " << si;
- }
- break;
- case 'c':
- for (int i = 1; i <= m; i++)
- {
- float xi = x / i;
- co += (i) / (cos(xi) + x);
- cout << "Funkcija kosinus je " << co;
- }
- break;
- case 'q':
- for (int i = 1; i <= m; i++)
- {
- float xi = x / i;
- korjen += (i) / (sqrt(xi) + x);
- cout << "Funkcija korijen je " << korjen;
- }
- break;
- case 'p':
- for (int i = 1; i <= m; i++)
- {
- float xi = x / i;
- kvadrat += (i) / (pow(xi, 2) + x);
- cout << "Funkcija kvadrat je " << kvadrat;
- }
- break;
- default:
- break;
- }
- } while (izbor != 's' && izbor != 'c' && izbor != 'q' && izbor != 'p');
- system("pause>null");
- return 0;
- }
- /*...............................................................Zadatak4..............................................................Poštujući sve faze procesa programiranje napisati program koji korisniku omogućava unos cijelog broja N, te izračunava geometrijsku sredinu svih neparnih brojeva u intervalu [1, N] koji nisu djeljivi sa brojem 5. Rezultat treba biti zaokružen na dvije decimale.
- Geometrijska sredina n brojeva se računa po formuli:
- 〖(a_1*a_2…〖*a〗_n)〗^(1/n) ili √(n&a_1*a_2…a_n )
- Za uneseno n = 3, rezultat je: 1,73
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int main() {
- int broj,privremena = 1,n = 1;
- double sredina, sq;
- cout << "Unesi broj : ";
- cin >> broj;
- for (int i = 1; i < broj; i+=2) {
- if (broj % 5 != 0) {
- privremena = privremena * broj;
- n++;
- }
- }
- sq = 1.0 / n;
- sredina = pow(privremena, sq);
- cout << "Geometrijska sredina ovih brojeva je : " << setiosflags(ios::fixed) << setprecision(2) << sredina << endl;
- system("pause > 0 ");
- return 0;
- }
- /*...............................................................Zadatak5............................................................
- Napisati program koji omogućava unos pozitivnog broja n te pronalazi njegovu najmanju cifru i formira novi broj u kojem je najmanja cifra zamijenjena cifrom '3'. Ukoliko uneseni broj n sadrži više istih cifara koje su najmanje, tada je potrebno zamijeniti svaku od njih. Dodatno program treba ispisati razliku unesenog i broja koji se dobije nakon zamjene najmanje cifre.
- Primjer izlaza:
- Unesite pozitivan broj: 5865
- Broj nakon promjene najmanje cifre: 3863
- Razlika brojeva iznosi: 2002
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int main() {
- int broj, privremena = 10, cifra,noviBroj = 0,cifraNoviBroj,brojac=0;
- cout << "Unesite pozitivan prirodan broj : ";
- cin >> broj;
- while (broj < 0) {
- cout << "Niste unijeli pozitivan broj, unesite ponovo : ";
- cin >> broj;
- }
- int kopija;
- kopija = broj;
- do {
- cifra = kopija % 10;
- if (cifra < privremena) {
- privremena = cifra;
- }
- kopija /= 10;
- brojac++;
- } while (kopija > 0);
- cout << "Najmanja cifra je : " << privremena << ", a broj znamenki tog broja je : " << brojac << endl;
- kopija = broj;
- for (int i = 0; i < brojac; i++) {
- cifraNoviBroj = kopija % 10;
- if (cifraNoviBroj == privremena) {
- noviBroj = noviBroj + 3 * pow(10, i);
- }
- else {
- noviBroj = noviBroj + cifraNoviBroj * pow(10, i);
- }
- kopija = kopija / 10;
- }
- cout << "Najmanja cifra tog broja je : " << privremena << ", a kada zamjenimo najmanju cifru sa 3 dobijemo broj : " << noviBroj << endl;
- cout << "Razlika tih brojeva je : " << broj - noviBroj;
- system("pause > 0 ");
- return 0;
- }
- /*.............................................................Zadatak6..............................................................
- Napisati program koji korisniku omogućava unos realnog broja x, cijelog broja m i odabir funkcije za proračun datog izraza. Korisnik bira funkciju unosom jednog od sljedećih karaktera: 's' (sin), 'c' (cos), 'q' (sqrt) i 'p' (pow). U slučaju da korisnik unese karakter koji ne odgovara niti jednoj od predefinisanih vrijednosti ispisati odgovarajuću poruku i ponoviti odabir.
- Za odabranu funkciju sin izraz je:
- f(x,m)=〖(sin〗(x)+1)*(sin(x)+2)*…(sin(x)+m)
- Broj faktora u izrazu odgovara unesenom broju m. U rješenju obavezno iskoristiti switch iskaz.
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int Sinus(int m, int x);
- int Kor(int m, int x);
- int Kosinus(int m, int x);
- int Kvadrat(int m, int x);
- int main() {
- int m, x;
- char izbor;
- cout << "Unesite m, x : " << endl;
- cin >> m >> x;
- cout << "Izaberite 's' (sin), 'c' (cos), 'q' (sqrt) i 'p' (pow) : ";
- cin >> izbor;
- while (izbor != 's' && izbor && 'c' && izbor != 'q' && izbor != 'p') {
- cout << "Niste unijeli validan izbor, unesite poovo : ";
- cin >> izbor;
- }
- switch (izbor) {
- case 's':
- cout << "Funkcija je jednaka : " << Sinus(m, x);
- break;
- case 'c':
- cout << "Funkcija je jednaka : " << Kosinus(m,x);
- break;
- case 'q':
- cout << "Funkcija je jednaka : " << Kor(m,x);
- break;
- case 'p':
- cout << "Funkcija je jednaka : " << Kvadrat(m,x);
- break;
- default:
- break;
- }
- system("pause > 0");
- return 0;
- }
- int Sinus(int m, int x) {
- float fun = 1;
- for (int i = 1; i <= m; i++) {
- fun = fun * (sin(x) + i);
- }
- return fun;
- }
- int Kosinus(int m, int x) {
- float fun = 1;
- for (int i = 1; i <= m; i++) {
- fun = fun * (cos(x) + i);
- }
- return fun;
- }
- int Kvadrat(int m, int x) {
- float fun = 1;
- for (int i = 1; i <= m; i++) {
- fun = fun * (pow(x,2) + i);
- }
- return fun;
- }
- int Kor(int m, int x) {
- float fun = 1;
- for (int i = 1; i <= m; i++) {
- fun = fun * (sqrt(x) + i);
- }
- return fun;
- }
- /* ...........................................................Zadatak7.................................................................
- Poštujući faze procesa programiranja napisati program u kojem će se za uneseni prirodni broj n računati:
- S=1/(n+1)-2/(n+2!)+3/(n+3!)-4/(n+4!)+⋯+〖(-1)〗^(n-1) (n/(n+n!))
- Glavnina programa može ostati u main() funkciji. Za računanje faktorijela (i!) koristiti funkciju:
- int faktorijel(int);
- Napomena: Predznak 〖(-1)〗^(n-1) se dobiti riješiti ispitivanjem da li je brojac u petlji parni ili neparni broj.
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int faktorijel(int);
- int main() {
- int n;
- float suma = 0;
- do {
- cout << "Unesite prirodan broj n : ";
- cin >> n;
- } while (n < 1);
- for (int i = 1; i <= n; i++) {
- suma += pow(-1, i - 1)*(i * 1.0 / (n + faktorijel(i)));
- }
- cout << "Suma je : " << suma;
- system("pause>0");
- return 0;
- }
- int faktorijel(int x) {
- int f = 1;
- for (int i = 1; i <= x; i++) {
- f*=i;
- }
- return f;
- }
- /*............................................................Zadatak8.................................................................
- Napisati program kojim će se izračunati 20 uzastopnih vrijednosti brzine i pređenog puta objekta u slobodnom padu u razmaku od po 3 sec. Izračunate vrijednosti brzine i pređenog puta smjestiti u odvojene nizove od po 20 elemenata, te ispisati na ekranu uzastopno brzinu i pređeni put zajedno za svaki period od 3sec. Nije obavezno koristiti funkcije. Obratiti pažnju da se koriste ispravni tipovi podataka.
- Uraditi sve izračune dodjele vrijednosti elementima niza i ispise koristeći samo jednu for(int i=1;i<=20;i++) petlju.
- Formula za brzinu slobodnog pada je: v=g*t //g=9.81
- Formula za pređeni put pri slobodnom padu je: s=(g/2)*pow(t,2) //g=9.81
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int main() {
- const int g = 9.81;
- int t = 3;
- float v, s;
- cout << "Vrijeme " << setw(20) << " Brzina pada " << setw(20) << "Predjeni put " << endl;
- for (int i = 1; i <= 20; i++) {
- cout << setw(4) << t << "s";
- v = g * t;
- cout << setw(18) << v << "m/s";
- s = (g / 2)*pow(t, 2);
- cout << setw(18) << s << "m" << endl;
- t += 3;
- }
- system("pause>0");
- return 0;
- }
- /*...............................................................Zadatak9..............................................................Napisati program, poštujući sve faze procesa programiranja, koji na osnovu ulaznih vrijednosti x i n izračunava vrijednost sljedećeg izraza:
- S=(Fib(0)+x)/x+(Fib(1)+x)/〖(x+1)〗^2 +(Fib(2)+x)/〖(x+2)〗^3 +⋯+(Fib(n)+x)/〖(x+n)〗^(n+1)
- Fib(n) – n-ti element Fibonaccijevog niza. Fibonaccijev niz je niz brojeva koji počinje brojevima 0 i 1, a svaki sljedeći broj u nizu dobije se zbrajanjem prethodna dva: F0 = 0, F1 = 1; Fn = FN - 1 + Fn – 2.
- Za potrebe pronalska n-tog člana Fibonaccijevog niza kreirati zasebnu funkciju koja će se pozivati u glavnom programu gdje se vrši kalkukacija i ispis konačne sume.
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int Fibo(int);
- int main() {
- int n, x, y = 0;
- float rezultat = 0;
- cout << "Unesite parametre N i X : " << endl;
- cin >> n >> x;
- for (int i = 0; i <= n; i++) {
- y = x + i;
- rezultat = rezultat + ((Fibo(i) + x) / pow(y, i));
- }
- cout << "Vrijednost izraza je : " << rezultat;
- system("pause > 0");
- return 0;
- }
- int Fibo(int x) {
- int rezultat = 0, prvi = 0, drugi = 1;
- for (int i = 1; i <= x; i++) {
- rezultat = rezultat + prvi + drugi;
- prvi = drugi;
- drugi = rezultat;
- }
- return rezultat;
- }
- /*.............................................................Zadatak10...............................................................
- Poštujući faze programiranja napisati program za računanje binominalnog koeficijenta b prema sljedećoj formuli. Učitati prirodne brojeve n i k (n mora biti veći od k). Ako taj uvjet nije ispunjen ponoviti učitavanja. Koristiti posebnu funkciju za računanje binomnog koeficijenta. Naći i ispisati binomni koeficijent koji je jednak sljedećoj formuli:
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int Faktorijel(int);
- int main() {
- int n, k, x;
- float rezultat;
- cout << "Unesite n i k (n mora biti veci od k) : " << endl;
- cin >> n >> k;
- while (k > n) {
- cout << "k je vece od n,unesite ponovo n, pa k : " << endl;
- cin >> n >> k;
- }
- x = n - k;
- rezultat = (Faktorijel(n)) / (Faktorijel(k)*Faktorijel(x));
- cout << "Binomni koeficijent tih brojeva je : " << rezultat;
- system("pause > 0");
- return 0;
- }
- int Faktorijel(int x) {
- int faktorijel = 1;
- for (int i = 1; i <= x; i++) {
- faktorijel *= i;
- }
- return faktorijel;
- }
- /*..............................................................Zadatak11..............................................................
- Napisati program koji će učitati prirodni broj n<=10, a zatim n cijelih brojeva. Za svaki broj treba ispitati radi li se o broju koji je 'dobar'. Zatim sve dobre brojeve prebaciti u novi niz te ispisati njegove elemente i veličinu. Koristiti zasebne funkcije za unos i provjeru je li broj dobar.
- Napomena: Broj je „dobar“ ako je svaka njegova cifra veća od zbira cifara koji se nalaze desno od nje. Na primjer, 9620 je „dobar“ jer je 2>0, 6>2+0, 9>6+2+0. Drugi primjeri: 8421, 95210, 732. 621, 852 itd.
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int Unos(int x);
- int Provjera(int x);
- int main() {
- int n;
- cout << "Koliko brojeva zelite unijeti ? " << endl;
- cin >> n;
- while (n > 10) {
- cout << "Morate unijeti manje brojeva od 10, unesite ponovo : ";
- cin >> n;
- }
- Unos(n);
- system("pause > 0");
- return 0;
- }
- int Unos(int x) {
- int n;
- for (int i = 1; i <= x; i++) {
- cout << "Unesite " << i << ". broj koji zelite provjeriti : " << endl;
- cin >> n;
- Provjera(n);
- }
- return 0;
- }
- int Provjera(int x) {
- int brojac = 0, kopija, desnaCifra, zbirOstalih = 0,pls;
- kopija = x;
- do {
- x /= 10;
- brojac = brojac + 1;
- } while (x > 0);
- pls = pow(10, brojac-1);
- desnaCifra = kopija / pls;
- do {
- zbirOstalih = zbirOstalih + kopija % 10;
- kopija = kopija / 10;
- } while (kopija > 10);
- if (desnaCifra > zbirOstalih) {
- cout << "Broj je dobar" << endl;
- cout << "Njegova velicina je " << brojac << endl;
- }
- else
- cout << "Broj nije dobar" << endl;
- return 0;
- }
- /*................................................................Zadatak12............................................................
- Svaki paran broj može se prikazati kao suma dvaju prostih brojeva (tkzv. Goldbachovo pravilo). Razraditi logiku programa koji će najprije učitati dva prirodna broja n1 i n2. Ako je n1 > n2 zamijeniti n1 sa n2. Prikazati sve parne brojeve u intervalu n1 do n2 kao sumu dvaju prostih brojeva. U glavnom programu samo unijeti navedena dva prirodna broja i pozvati funkciju koja obavlja zadani posao.
- int Provjera(int &x, int &y);
- void SumaParni(int x, int y);
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int main() {
- int x, y;
- cout << "Unesi 2 prirodna broja : ";
- cin >> x >> y;
- Provjera(x, y);
- SumaParni(x, y);
- system("pause > 0");
- return 0;
- }
- int Provjera(int &x, int &y) {
- int privremena = 0;
- if (x > y) {
- privremena = x;
- x = y;
- y = privremena;
- }
- return x, y;
- }
- void SumaParni(int x, int y) {
- for (int i = x; i <= y; i++) {
- if (i % 2 == 0) {
- cout << i / 2 << " + " << i / 2 << " = " << i << endl;
- }
- }
- }
- /*...............................................................Zadatak13.............................................................
- Data su dva prirodna broja X i Y iz intervala od 10 do 5000. Poštujući sve faze procesa programiranja, kreirati program koji će pronaći i ispisati sve brojeve od X do Y (uključujući granične vrijednosti) čija je suma cifara djeljiva sa brojem koji se dobije u obrnutom poretku tih cifara. U rješenju koristiti najmanje jednu funkciju.
- Npr. Za broj 144 vrijedi da mu je suma cifara 9 i da je broj koji se dobije nakon što se njegove cifre obrnu, 441, djeljiv sa 9. (Pojasnjenje: 144 je obrnuto 441. 1+4+4=9 a 441%9==0)
- Primjer:
- Definisite vrijednosti intervala [X, Y]: 11 150
- Brojevi koji ispunjavaju dati uslov: 18 20 21 24 27
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int Zbir(int x);
- int Obrnuta(int x);
- int main() {
- int x, y, privremena;
- do {
- cout << "Unesite 2 broja izmedji 10 i 5000 : " << endl;
- cin >> x >> y;
- } while (x < 10 || x>5000 || y < 10 || y>5000);
- if (x > y) {
- privremena = x;
- x = y;
- y = privremena;
- }
- cout << "Brojevi koji ispunjavaju dati uslov su : " << endl;
- for (int i = x; i <= y; i++) {
- if (Obrnuta(i) % Zbir(i) == 0) {
- cout << i << endl;
- }
- }
- system("pause > 0");
- return 0;
- }
- int Zbir(int x) {
- int suma = 0, ostatak;
- do {
- ostatak = x % 10;
- suma = suma + ostatak;
- x /= 10;
- } while (x > 0);
- return suma;
- }
- int Obrnuta(int x) {
- int kopija, brojac = 0, cifra, noviBroj = 0;
- kopija = x;
- do {
- kopija = kopija / 10;
- brojac+=1;
- } while (kopija > 0);
- for (int i = 1; i <= brojac; i++) {
- cifra = x % 10;
- noviBroj = noviBroj + cifra*pow(10, brojac - i);
- x /= 10;
- }
- return noviBroj;
- }
- /*................................................................Zadatak14............................................................
- Data su dva prirodna broja X i Y iz intervala od 10 do 5000. Poštujući sve faze procesa programiranja, kreirati program koji će prebrojati i ispisati koliko brojeva od X do Y (uključujući granične vrijednosti) zadovoljava uslov da im je suma svih cifara djeljiva sa brojem koji se dobije kad se saberu prva i zadnja cifra. U rješenju koristiti najmanje jednu funkciju.
- Npr. Za broj 162 vrijedi da mu je suma cifara 9 a suma prve i zadnje cifre je 1+2=3. Broj 9 je djeljiv brojem 3. (Pojasnjenje: 1+6+2=9 a 1+2=3. 9%3==0)
- Definisite vrijednosti intervala [X, Y]: 11 150
- Dati uslov ispunjava: 184 broja.
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int Zbir(int x);
- int PrvaZadnja(int x);
- int main() {
- int x, y, privremena, brojac=0;
- do {
- cout << "Unesite 2 broja izmedji 10 i 5000 : " << endl;
- cin >> x >> y;
- } while (x < 10 || x>5000 || y < 10 || y>5000);
- if (x > y) {
- privremena = x;
- x = y;
- y = privremena;
- }
- for (int i = x; i <= y; i++){
- if (Zbir(i) % PrvaZadnja(i) == 0)
- {
- brojac += 1; }
- }
- cout << "Dati uslov ispunjava: " << brojac << " brojeva";
- system("pause>0");
- return 0;
- }
- int Zbir(int x) {
- int suma = 0, cifra;
- do {
- cifra = x % 10;
- suma = suma + cifra;
- x = x / 10;
- } while (x > 0);
- return suma;
- }
- int PrvaZadnja(int x) {
- int prva, zadnja, suma;
- prva = x % 10;
- while(x /10 != 0) {
- zadnja = x % 10;
- x = x / 10;
- }
- suma = prva + zadnja;
- return suma;
- }
- /*............................................................Zadatak15................................................................
- Poštujući sve faze procesa programiranja, napisati program koji izračunava aritmetičku sredinu svih savršenih brojeva iz zadatog intervala. Za neki broj se kaže da je savršen ukoliko je jednak sumi svih svojih djelilaca (ne uključujući njega samog). Na primjer, 28 je savršen broj: njegovi djelioci su 1, 2, 4, 7 i 14, a 1 + 2 + 4 + 7 + 14 = 28. Jedini savršeni brojevi u opsegu od 1 do 100 su brojevi 6 i 28. U rješenju koristiti funkciju sljedećeg prototipa: bool IsSavrsen(int).
- Primjer
- Unesite granice intervala: 1 500
- Aritmeticka sredina savrsenih brojeva iz zadatog intervala je: 176.667
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- bool Savrsen(int);
- int main() {
- int b1, b2, brojac = 0, pomocna;
- float sredina = 0;
- cout << "Unesite pocetak i kraj intervala : " << endl;
- cin >> b1 >> b2;
- if (b1 > b2) {
- pomocna = b1;
- b1 = b2;
- b2 = pomocna;
- }
- for (int i = b1; i <= b2; i++) {
- if (Savrsen(i)) {
- brojac++;
- sredina += i;
- }
- }
- cout << "Artimeticka sredina je : " << sredina / brojac;
- system("pause>0");
- return 0;
- }
- bool Savrsen(int x) {
- int suma = 0;
- for (int i = 1; i < x; i++)
- if (x%i == 0)
- suma += i;
- if (suma == x)
- return true;
- else
- return false;
- }
- /*...............................................................Zadatak16.............................................................
- Poštujući sve faze procesa programiranja, kreirati program koji će pronaći i ispisati sve brojeve od X do Y (uključujući granične vrijednosti) koji su deljivi svim svojim ciframa. Na primjer, broj 36 je djeljiv sa brojevima 3 i 6. (36/6=6 i 36/3=12). Brojeve X i Y unosi korisnik i moraju biti u opsegu od 10 do 6000. Obavezno koristiti bar jednu funkciju.
- Primjer:
- Unesite granice intervala: 32 37
- Brojevi u navedenom opsegu koji zadovoljavaju uslov su: 33, 36.
- */
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- int Djeljiv(int broj);
- int main() {
- int x, y, privremena;
- do {
- cout << "Unesite 2 broja izmedju 10 i 6000 : " << endl;
- cin >> x >> y;
- } while (x < 10 || x > 6000 | y < 10 | y > 6000);
- if (x > y) {
- privremena = x;
- x = y;
- y = privremena;
- }
- cout << "Brojevi koji ispunjavaju uslov su : " << endl;
- for (int i = x; x <= y; i++) {
- if (Djeljiv(i)) {
- cout << i << endl;
- }
- }
- system("pause > null");
- return 0;
- }
- int Djeljiv(int broj){
- int fiksnibroj;
- fiksnibroj = broj;
- int cifra(1);
- bool provjera;
- while (broj / 10 != 0)
- {
- cifra = broj % 10;
- if (fiksnibroj % cifra == 0)
- {
- provjera = true;
- }
- else
- {
- provjera = false;
- }
- broj /= 10;
- }
- if (provjera && (fiksnibroj%broj == 0))
- {
- return fiksnibroj;
- }
- else
- {
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment