Код неверный
Объяснение:
Вот код:
Первый (простой, работает медленнее)
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
for(int i = 1; i <= n; i++) {
if(sqrt(i) == (int)sqrt(i))
cout << i << ' ';
}
}
Фактически мы просто для каждого числа проверяем, является ли его квадратный корень целым числом.
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
int x = 1, d = 3;
while(x <= n) {
cout << x << ' ';
x += d;
d += 2;
}
}
Решение основывается на этом утверждении:
Разница между квадратами двух последовательных натуральных чисел больше на 2 разницы между предыдущими двумя квадратами, например:
4 - 1 + 2 = 9 - 4
Доказательство:
Из чего получаем:
Доказано.
ответ: Программа рабочая, проверена.
Program zadacha;
var
a: array [1..50] of integer; // размерность массива = 50
i,k: integer;
begin
begin
for i:=1 to 50 do
a[i] := Random(100); // числа от 0 до 100 будут присутствовать в массиве
writeln('Заполненный массив: ');
for i:=1 to 50 do
write(a[i],' '); end; // выводим массив на экран до проверки
writeln; //новая строка
writeln('Введите значение числа K: '); readln(k);
writeln('Элементы массива, кратные K:');
for i:=1 to 50 do
if (a[i] mod k = 0) then write(a[i],' ');
end.
Объяснение:
i - порядковый номер элемента
a - сам массив
k - вводимое число
В остальном оставила комментарии.
Размерность массива и его диапазон указан в программе числами, т.к. в задаче не было вопроса о вводе элементов или вводе размерности.
sfc хорошист
2012-05-29T19:56:16+04:00
20*32*16 = 10240 (количество символов в статье)
каждый символ кодируется 16-ю битами,
10240 * 16 = 163840 бит.
можно перевести в килобайты.
163840 бит/8 = 20480 байт
20480/1024 = 20 кб.
ответ: 20 килобайт.