М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
nikitastepanov21
nikitastepanov21
30.04.2021 15:48 •  Информатика

До іть розв'язати задачу. Python. Задано число К. Напишіть програму, яка обчислить суму всіх чотирицифрових чисел кратних К. Постарайтеся написати програму без використання умовного оператора

Тест
1000
Відповідь
45000
Тест
9999
Відповідь
9999

👇
Ответ:
Diiankkk
Diiankkk
30.04.2021

K = int(input())

a1 = 1000 + (K - 1000 % K) % K

an = 9999 - 9999 % K

print((a1 + an) * ((an - a1) // K + 1) // 2)

Объяснение:

Числа, кратные K, можно представить в виде a_i=i\cdot K. Тогда a_{i+1}=(i+1)K=iK+K=a_i+K, то есть эти числа составляют арифметическую прогрессию с разностью K. Одна из формул суммы арифметической прогрессии: S=\dfrac{a_1+a_n}{2}\cdot n. Необходимо узнать первое, последнее число (среди четырёхзначных) и их количество.

Первое число не меньше 1000. При делении на K 1000 даёт некоторый остаток r в диапазоне [0, K-1]. Тогда наименьшее искомое четырёхзначное число будет больше 1000 на K - r либо 1000 сама будет являться числом, кратным K. В последнем случае r = 0, K - r = K. Чтобы не прибавлять лишнего, достаточно взять остаток от K - r по K. Это не повлияет на значение K - r в остальных случаях, но обеспечит 0 при r = 0.

Последнее число не больше 9999. При делении на K 9999 даёт некоторый остаток p в диапазоне [0, K-1]. Наибольшее искомое четырёхзначное число будет меньше 9999 на p либо 9999 и будет этим числом. В данном случае ситуация p = K попросту невозможна, поэтому дополнительно брать остаток не придётся.

Положим первое и последнее четырёхзначное число, как a₁ и aₙ. Тогда они связаны соотношением a_n=a_1+K(n-1)\Leftrightarrow \dfrac{a_n-a_1}{K}=n-1\Leftrightarrow n=\dfrac{a_n-a_1}{K}+1. Подставив вычисленный n в формулу для суммы, получим нужный ответ.

4,7(15 оценок)
Открыть все ответы
Ответ:
olga810706
olga810706
30.04.2021
Uses GraphABC;
var a,b,c:array[10..99] of integer;
 ast,bst,cst:string;
 i:integer;
begin
ast:='A:';
bst:='Б:';
cst:='В:';
for i:=10 to 99 do
begin
c[i]:=i;
a[i]:=c[i]-i+random(50);
b[i]:=c[i]-a[i];
ast:=ast+' '+inttostr(a[i]);
bst:=bst+' '+inttostr(b[i]);
cst:=cst+' '+inttostr(c[i]);
end;
setpencolor(clRed);
line(0,0,150,0);
line(150,0,75,50);
line(75,50,0,0);
rectangle(0,50,150,300);
DrawTextCentered(0,50,150,300,ast);
setpencolor(clYellow);
line(150,0,300,0);
line(300,0,225,50);
line(225,50,150,0);
rectangle(150,50,300,300);
DrawTextCentered(150,50,300,300,bst);
setpencolor(clGreen);
line(300,0,450,0);
line(450,0,375,50);
line(375,50,300,0);
rectangle(300,50,450,300);
DrawTextCentered(300,50,450,300,cst);
end.
4,6(56 оценок)
Ответ:
mila17111
mila17111
30.04.2021
Var
    n, i, prev: integer;

function IsSimpleNumber(n: integer): boolean;
var
    i: integer;
begin
    IsSimpleNumber := true;
    
    for i := 2 to round(sqrt(n) + 1) do
        if n mod i = 0 then begin
            IsSimpleNumber := false;
            exit;
        end;
end;

begin
    read(n);
    prev := 0;
    
    for i := n to 2 * n do
        if IsSimpleNumber(i) then
            if prev = 0 then
                prev := i
            else if i - prev = 2 then begin
                writeln(i, ', ', prev, ' - близнецы');
                halt;
            end
            else prev := i;
    
    writeln('Близнецов нет');
end.
4,6(45 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ