Var A,d,S:integer; Begin Write('Искомые числа:'); For A:= 300 to 600 do Begin S:=A+1; d:=A div 2; While d>1 do Begin if A mod d = 0 then S:=S+d; d:=d-1 End; if S = 50 then Write(' ',A); End End.
Программа, разумеется, не выдаст ни одного числа, т.к. каждое число делится на себя и на единицу. То есть сумма делителей всегда будет больше 301.
Если не брать в расчёт само число и единицу, то программа будет выглядеть так:
Var A,d,S:integer; Begin Write('Искомые числа:'); For A:= 300 to 600 do Begin S:=0; d:=A div 2; While d>1 do Begin if A mod d = 0 then S:=S+d; d:=d-1 End; if S = 50 then Write(' ',A); End End.
Результат работы программы:
Искомые числа: 301 481 589
lavr74
13.08.2021
Объект в программировании — некоторая сущность в виртуальном пространстве, обладающая определённым состоянием и поведением, имеющая заданные значения свойств (атрибутов) и операций над ними (методов) [1]. Как правило, при рассмотрении объектов выделяется то, что объекты принадлежат одному или нескольким классам, которые определяют поведение (являются моделью) объекта. Термины «экземпляр класса» и «объект» взаимозаменяемы. [2]
Объект, наряду с понятием класс, является важным понятием объектно-ориентированного подхода. Объекты обладают свойствами наследования, инкапсуляции и полиморфизма [1].
Anna Artem
13.08.2021
/* C++ compiler gcc (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010 Copyright (C) 2015 Free Software Foundation, Inc. */
#include <iostream> #include <vector> using namespace std;
int main() { int count = 0; cout <<"Введите количество призывников: "; cin >>count; if (count>17) count=17; vector<int> tanks(count); for (unsigned i=0; i<tanks.size(); i++) cin >>tanks[i]; int min=300, max=0; for (unsigned i=0; i<tanks.size(); i++) { if (min>tanks[i]) min=tanks[i]; if (max<tanks[i]) max=tanks[i]; } int cnt=0; for (unsigned i=0; i<tanks.size(); i++) { if ((tanks[i]!=min) and (tanks[i]!=max)) cnt++; }
cout <<cnt <<endl; }
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Найдите все целые числа из промежутка от 300 до 600, у которых сумма делителей равна 50 . решить .
Var A,d,S:integer;
Begin
Write('Искомые числа:');
For A:= 300 to 600 do
Begin
S:=A+1;
d:=A div 2;
While d>1 do
Begin
if A mod d = 0 then S:=S+d;
d:=d-1
End;
if S = 50 then Write(' ',A);
End
End.
Программа, разумеется, не выдаст ни одного числа, т.к. каждое число делится на себя и на единицу. То есть сумма делителей всегда будет больше 301.
Если не брать в расчёт само число и единицу, то программа будет выглядеть так:
Var A,d,S:integer;
Begin
Write('Искомые числа:');
For A:= 300 to 600 do
Begin
S:=0;
d:=A div 2;
While d>1 do
Begin
if A mod d = 0 then S:=S+d;
d:=d-1
End;
if S = 50 then Write(' ',A);
End
End.
Результат работы программы:
Искомые числа: 301 481 589