Запишіть програму формування та виведення масиву з N елементів (N ‹= 1000). Елементи масиву — перші N простих чисел (просте число — це число, більше за 1, яке ділиться тільки на 1 і саме на себе).
Рішення:
Скористаємося решетом Ератосфена - це алгоритм знаходження простих чисел до заданого числа n. У процесі виконання даного алгоритму поступово відсіваються складені числа, кратні простим, починаючи з 2.
// варіант 1 №17
#include ‹iostream› using namespace std; int main()
{
int N;
cin ›› N; //кількість шуканих простих чисел
int *M = new int [N];//M ‐ масив для зберігання простих чисел
M[0]=2;//2 – перше відоме просте число, занесене до масиву
int p=3;//p – перше число, що перевіряється на "простоту"
//n‐ індексы простих чисел в массиві М
for (int n=1; n‹N; n++)
{
//перевіряємо подільність числа р на всі знайдені прості числа (які є в масиві) a: for (int i = 0; i‹n; i++)
if (M[i]‹=p/2 && p%M[i]==0) // якщо p не просте
{
p++;//то переходимо до наступного числа
goto a;//знову перевіряємо подільність числа на всі збережені прості
}
//з циклу поміченого як а: вийде після знаходження наступного простого р
M[n]=p;//запам’ятовуємо знайдене просте в масиві
p++;//переходимо до наступного числа для перевірки його на "простоту"
}
//виведення массиву знайдених простих чисел
for (int i = 0; i‹N; i++) cout ‹‹ M[i] ‹‹ " ";
system ("pause››void"); return 0;
}
ВАРІАНТ 2
Задано ціле число N (2 ‹= N ‹= 30). Запишіть програму формування та виведення масиву А розміру N, що містить N перших елементів послідовності чисел Фібоначчі. Числа Фібоначчі обчислюються за таким алгоритмом FK:
F1 = 1, F2 = 1, FK = FK–2 + FK–1, K = 3, 4, … .
//варіант 2 №17
#include ‹iostream› using namespace std; int main ()
{
int N; cin ›› N;
int *M = new int [N];
//два перших числа Фібоначчі
M[0]=1; M[1]=1;
//наступні числа Фібоначчі
for (int i=2; i‹N; i++) M[i]=M[i‐1]+M[i‐2];
//виведення знайдених чисел
for (int i=0; i‹N; i++) cout ‹‹ M[i] ‹‹ " ";
delete [] M; system ("pause");
return 0;
}
ВАРІАНТ 3
Запишіть програму виведення натурального числа n (0 ‹= n ‹= 9999) у його словесному запису. Наприклад, n = 2354 — дві тисячі триста п’ятдесят чотири.
ЗАУВАЖЕННЯ: для коректного виведення українських слів у консольному вікні використовуйте при написанні назв чисел латинську літеру «і»
//варіант 3 №17
#include ‹iostream›
#include ‹string› using namespace std; int main()
{
setlocale(0,"");
int n; cin ›› n;
if(n==0)
{
cout ‹‹ "нуль"; return 0;
}
//тисяч
switch (n/1000)
{
case 1: cout ‹‹ "тисяча "; break; case 2: cout ‹‹"двi тисячi "; break;
case 3: cout ‹‹"три тисячi "; break; case 4: cout ‹‹"чотири тисячi ";break; case 5: cout ‹‹"п'ять тисяч "; break; case 6: cout ‹‹"шiсть тисяч "; break; case 7: cout ‹‹"сiм тисяч "; break; case 8: cout ‹‹"вiсiм тисяч "; break; case 9: cout ‹‹"дев'ять тисяч ";break;
}
//сотень
switch ((n/100)%10)
{
case 1: cout ‹‹"сто "; break; case 2: cout ‹‹"двiстi "; break; case 3: cout ‹‹"триста "; break; case 4: cout ‹‹"чотириста "; break; case 5: cout ‹‹"п'ятьсот "; break; case 6: cout ‹‹"шiстьсот "; break; case 7: cout ‹‹"сiмсот "; break; case 8: cout ‹‹"вiсiмсот "; break; case 9: cout ‹‹"дев'ятьсот ";break;
}
//десятків
switch ((n/10)%10)
{
case 2: cout ‹‹"двадцять "; break; case 3: cout ‹‹"тридцять "; break; case 4: cout ‹‹"сорок "; break; case 5: cout ‹‹"п'ятьдесят ";break; case 6: cout ‹‹"шiстьдесят ";break; case 7: cout ‹‹"сiмдесят "; break; case 8: cout ‹‹"вiсiмдесят ";break; case 9: cout ‹‹"дев'яносто ";break;
}
//одиниць switch (n%10)
{
case 1: cout ‹‹"один"; break; case 2: cout ‹‹"два"; break; case 3: cout ‹‹"три"; break; case 4: cout ‹‹"чотири"; break; case 5: cout ‹‹"п'ять"; break; case 6: cout ‹‹"шiсть"; break; case 7: cout ‹‹"сiм"; break; case 8: cout ‹‹"вiсiм"; break; case 9: cout ‹‹"дев'ять";break;
}
//...десять ...надцять
if ((n/10)%10==1)//якщо десятків ‐ один
{
int k=n%10;//k‐остання цифра
if(k==0)
cout ‹‹ "десять";
else if(k==1 || k==4 || k==5 || k==6 || k==9)//якщо остання буква «н», «и», або «ь» cout ‹‹ "\bнадцять";//замість останньої букви дописуємо «надцять»
else
cout ‹‹"надцять";
}
system ("pause ›› void"); return 0;
}
ЗАУВАЖЕННЯ:
Якщо програма працюватиме з файлами (наприклад при перевірці в тестуючих системах) то, починаючи з //десятків програму треба змінити, бо "\b" функціонує лише в консольному вікні. Попередньо необхідно підключити заголовочний файл ‹string›
string o;
//одиниць
switch (n%10)
{
case 1: o="один"; break; case 2: o="два"; break; case 3: o="три"; break; case 4: o="чотири"; break; case 5: o="п'ять"; break; case 6: o="шiсть"; break; case 7: o="сiм"; break; case 8: o="вiсiм"; break; case 9: o="дев'ять";break;
Запишіть програму формування та виведення двовимірного масиву A розміру 16 x 16 елементів, який містить таблицю множення чисел у шістнадцятковій системі числення.
//варіант 4 №17
#include ‹iostream›
#include ‹iomanip›
#include ‹string› using namespace std; int main()
{
//n ‐ основа системи числення
//d ‐ максимальна кількість цифр в числі‐результаті
const int n=16, d=3;
//рядковий масив для запису табличних значень
string A[n][n];
//символьний масив для збереження чисел (поциферно) char b[d+1];
for (int i=1; i‹n; i++)//по рядкам
{
cout ‹‹ endl;
for(int j=1; j‹n; j++) //по стовбцям (поелементно в рядку)