mlubov1
?>

Программа получает на вход последовательность целых неотрицательных чисел, каждое число записано в отдельной строке. Последовательность завершается числом 0, при считывании которого программа должна закончить свою работу. Числа, следующие за числом 0, считывать не нужно. найти количество элементов последовательности больших 4

Информатика

Ответы

anitanemtsewa
Pascal

 var   
n,i,k : integer;    
function Prost (a : integer) : boolean;  //Возвращает true если число простое
var   
i,b : integer;   
r : boolean; 
begin   
r := true;   
i := 2;   
b := a div 2;   
While (i <= b) and (r) do   
begin     
if a mod i = 0 then     
r := false;   
i := i +1;   
end;   
Result := r; 
end;  

function chet (l : integer) : integer; //Определяет кол-во     
var   i,s : integer;                        //возможных произведений 
                                                 // в числовой последовательносьти
                                                 //заданной длины
begin   
  s := 0;   
for i := 0 to k do     
s := s +(k - i);    
result := s;    
end;
begin 
readln (n); 
k := 0;     
for i := 2 to n do   
if prost(i) then begin     
k := k +1;      
//write (i,' '); // Вывод простых чисел(если надо, то раскоменьтить)     
end;   
writeln ();
writeln ('Кол-во простых чисел на диапазоне = ',k); 
writeln ('Кол-во произведений ',k,' различных чисел : ',chet(k));    
end. 

Вроде работает, хотя вероятно есть более эффективный алгоритм.
Единицу не учитывал как простое.
Блок схему рисовать не буду - геморойной, да и не силен я в этом

Просто попытаюсь объяснить алгоритм

1) Мы находим все простые числа на диапазоне от 1 до n
(выполняется функцией (prost), и перебором.
2) Исходя из кол-ва найденных простых чисел мы можем найти кол-во их произведений. Т.к все числа различны и идут в порядке увеличения.
Это делается с функции (chet)

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Программа получает на вход последовательность целых неотрицательных чисел, каждое число записано в отдельной строке. Последовательность завершается числом 0, при считывании которого программа должна закончить свою работу. Числа, следующие за числом 0, считывать не нужно. найти количество элементов последовательности больших 4
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

lika080489
vodoleytatyana
ИгоревичАндрей
Vadim443
ann328389
Косарев
Александра-Андрей909
Мусаев Игоревич371
milkiev
mgrunova
Yurevna
lovel24
sveta300856729
annino
▲