PROGRAM Privet;
VAR
x:real;
BEGIN
writeln('Который час?'); read(x);
if x > 24 then
writeln('Введенное число не является временем ' )
else
begin
if (x>=8) and (x<12) then writeln('Доброе утро!');
if (x>=12) and (x<17) then writeln('Добрый день!');
if(x>=17) and (x<23) then writeln('Добрый вечер!');
if(x>=23) or (x<8) then writeln('Доброй ночи!');
end;
end.
//вторая программа
var
x,x1,x2,y,y1,y2:real;
begin
write('x = '); readln(x);
write('y = '); readln(y);
write('x1 = '); readln(x1);
write('y1 = '); readln(y1);
write('x2 = '); readln(x2);
write('y2 = '); readln(y2);
if ((x - x1) * (x - x2) < 0) and ((y - y1) * (y - y2) < 0) then
writeln('Точка принадлежит заданной области')
else
writeln('Точка не принадлежит заданной области');
end.
проверено в Excel.
Решение:
для начала нужно понять как идут наши числа, то есть понять логику построения.
6 8 9 16 18 19 26 28 29 36 38 39 и т.д. 10-ое квадратное число = 36. значит логика построения верная.
как мы можем увидеть из этого кусочка - после первых трех чисел идут те же числа,но увеличенные на десяток.
в 100 первой сотне всех числе у нас "квадратных" 51 -> весь шестой десяток, весь восьмой и весь девятый,в остальных десятках по 3 числа = 30+7*3 = 51.
Получаем :
100 = 51
200= 102
300 = 153
400 = 204
500 = 255
600 = 355 (так как вся сотня с "квадратной" 6)
700 = 406
800 = 506
900 = 606
1000 = 657
2000 = 657+657=1314
3000 = 1314+657 = 1971
3100 = 1971+51=2022
так как нам нужно 2017-ое число,то идем из конца сотни и находим наше число
=>3194.
Таким образом получаем ответ : 3194