2.1
#include <iostream>
using namespace std;
int main()
{
//pierwsza możliwość
int n;
cin >> n;
float wpr;
float suma = 0;
for(int i=0; i<n; i++)
{
cin >> wpr;
suma += wpr;
}
cout << suma/n;
//druga opcja
suma=0;
wpr=0;
int licznik=0;
do{
cin >> wpr;
if(wpr==0) break;
suma += wpr;
licznik ++;
}while(1);
cout << suma/licznik;
cin.get();
cin.get();
return 0;
}
2.2
#include <iostream>
using namespace std;
int main()
{
int liczba;
cin >> liczba;
int tab[1000];
int suma=0;
int licznik=0;
for(int i=1; i<=liczba; i++)
{
if(liczba%i==0)
{
tab[licznik] = i;
cout << i << endl;
licznik++;
}
}
for(licznik-=2; licznik>=0 ;licznik--)
{
suma += tab[licznik];
}
if(suma==liczba) cout << "Doskonala ";
cin.get();
cin.get();
return 0;
}
2.3
#include <iostream>
using namespace std;
int main()
{
int liczba;
cin >> liczba;
int tab[2];
int licznik = 0;
for(int i=1; i<=liczba; i++)
{
if(liczba%i==0)
{
tab[licznik] = i;
licznik++;
if(licznik<1) return 0;
}
}
if (tab[1]==liczba) cout << "Pierwsza ";
cin.get();
cin.get();
return 0;
}
2.4
#include <iostream>
using namespace std;
//Tutaj chyba pokrecilem, ale dziala
int main()
{
int n;
do{cin >> n;}while(n<=2);
int tab[n];
int dzielnik=2;
int spr = dzielnik;
bool tmp=1;
for(int i=1; i<=n; i++)
{
tab[i-1]=i;
}
do{
for(int i=0; i<n; i++)
{
if(tab[i]!=dzielnik && tab[i]%dzielnik==0)tab[i]=0;
}
for(int i=1; i<n; i++)
{
if(tab[i]!=0 && tab[i]>dzielnik) dzielnik = tab[i];
if(spr!=dzielnik) break;
if(i==n-1 && spr==dzielnik ) tmp=0;
}
spr = dzielnik;
}while(tmp);
for(int i=1; i<n; i++)
{
if(tab[i]!=0) cout << tab[i] << "\t";
}
cin.get();
cin.get();
return 0;
}
2.5
#include<iostream>
using namespace std;
const MAX_LICZB_W_ROZKLADZIE = 1000;
const POCZATKOWYCH_LICZB_PIERWSZYCH = 15000;
void wyznacz_pierwsze(unsigned int tablica[]) {
int unsigned kolejna = 0;
int unsigned kwadrat = 4;
int unsigned i, j, f;
tablica[0] = 2;
for(i = 3, j = 1; j < POCZATKOWYCH_LICZB PIERWSZYCH; i += 2) {
if (i >= kwadrat) kwadrat = tab[++kolejna] * tab[kolejna];
for (l = 1; k < kolejna; k++) if(i % tablica[k] == 0) break;
if (k >= kolejna) tablica[j++] = i;
}
}
/**
liczba: rozbijana liczba całkowita
rozklad[]: rozkład liczby na czynniki pierwsze
*/
int main() {
unsigned int x=0, y=0, z=0;
unsigned int rozklad[MAX_LICZB_W_ROZKLADZIE];
unsigned int pierwsze[POCZATKOWYCH_LICZB_PIERWSZYCH];
unsigned int liczba;
wyznacz_pierwsze(pierwsze);
cin >> liczba;
while (liczba > 1) {
if(liczba % pierwsze[x] == 0) {
rozklad[y] = pierwsze[x];
liczba /= pierwsze[x];
x = 0; y++;
} else x++;
}
while (y > 0) {
cout << rozklad[x];
x++; y--;
}
return 0;
}
2.6
#include <iostream>
using namespace std;
int main()
{
const float monety[9] = {5,2,1,0.5,0.2,0.1,0.05,0.02,0.01};
float kwota;
int ilosc=0;
cin >> kwota;
for(int i=0; i<9; i++)
{
ilosc = kwota/monety[i];
cout << ilosc << " * " << monety[i] << endl;
kwota-=monety[i]*ilosc;\
}
cin.get();
cin.get();
return 0;
}
2.7
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
float tab[n], sr ,tmp;
float suma=0;
for(int i=0; i<n; i++)
{
cin >> tab[i];
suma+=tab[i];
}
sr=suma/n;
for(int i=0; i<n; i++)
{
for(int j=1; j<n; j++)
{
if(tab[j]<tab[j-1])
{
tmp=tab[j];
tab[j]=tab[j-1];
tab[j-1]=tmp;
}
}
}
for(int i=0; i<n; i++)
{
if(sr>=tab[i])
{
if(sr-tab[i]<tab[i+1]-sr) cout << tab[i];
else cout << tab[i+1];
break;
}
}
cin.get();
cin.get();
return 0;
}
2.8
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int k;
cin >> k;
float tab[n], tmp;
for(int i=0; i<n; i++)
{
cin >> tab[i];
}
for(int i=0; i<n; i++)
{
if(sr>=tab[i]&&sr<=tab[i+1])
{
if(sr-tab[i]<tab[i+1]-sr) cout << tab[i];
else cout << tab[i+1];
break;
}
}
cout << tab[n-k];
cin.get();
cin.get();
return 0;
}