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

Товарищи,говорю сразу, не школьного уровня и нужна сегодня к вечеру или завтра к утру,тому кто решит много ! вася занимается в кружке и интересуется различными свойствами чисел.недавно он изучил понятие простого числа. напомним, что натуральное число n называется простым, если n > 1 и у него есть ровно два делителя: 1 и n. особо интересными вася считает числа, которые представимы в виде произведения двух различных простых чисел. вася хочет найти количество таких чисел среди чисел от 1 до n,однако считать его вручную не хочет. поэтому он попросил вас написать для него программу,которая будет вычислять это количество. задано число п. необходимо найти количество чисел х от 1 до n, которые представимы в виде произведения двух различных простых чисел. p/s. составить блок схему к ; ))

👇
Ответ:
shamilovaam
shamilovaam
08.05.2020
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)
4,7(56 оценок)
Открыть все ответы
Ответ:
yohoho365
yohoho365
08.05.2020
// PascalABC.NET 3.3, сборка 1600 от 23.12.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=SeqRandom(ReadInteger('n='),-99,99).Select(t->t/10).ToArray;
  a.Println;
  Writeln('1: ',a.Where(t->t<0).Sum);
  a.Sort; // по возрастанию
  a.Println;
  Writeln('2: ',a[a.IndexMin+1:a.IndexMax].Aggregate(1.0,(x,y)->x*y))
end.

Пример
n= 13
-3 6 -2.3 -7.5 -1.6 8.4 -4.7 -2.8 9.9 -3.3 -0.7 0.9 -8.8
1: -34.7
-8.8 -7.5 -4.7 -3.3 -3 -2.8 -2.3 -1.6 -0.7 0.9 6 8.4 9.9
2: 114175.0608768

// PascalABC.NET 3.3, сборка 1600 от 23.12.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var (m,n):=ReadInteger2('Количество строк и столбцов в матрице:');
  Writeln('*** Исходная матрица ***');
  var a:=MatrRandom(m,n,-20,20);
  a.Println(4); Writeln(4*a.ColCount*'-');
  Writeln('1: ',a.Rows.Where(r->r.All(t->t<>0)).Count);
  Writeln('2: ',a.ElementsByRow.GroupBy(t->t).Select(t->(t.Key,t.Count))
      .Where(t->t[1]>1).MaxBy(t->t[0])[0])
end.

Пример
Количество строк и столбцов в матрице: 7 20
*** Исходная матрица ***
  -9   9  16  -5  18  -1 -12 -13 -19 -12   8 -19 -18  20 -16   9  -7  17 -19   1
   8   2  18  -7 -16   3  15  19 -11 -10  -9  -4  16  -4  18  10  15  10 -17   6
 -19 -15 -14  15  11 -13   3   0   1  -6 -17 -17 -14  -4  -2  10  11   3  -9  -6
   5 -11  18  11  18  -8 -14   6 -18  -5  15   4  13  -5  -1   3  -4 -18   2  18
 -20  -5  -2  16 -13 -13 -11  -1  19 -12  19  -9  -1  10 -19  13 -13  -5  18  -1
 -19  18  -2 -14  -1   0 -10  12  17  16  -7   9 -20  -7  -6 -10  12 -18   4  10
 -18   7   7  15  -4   3 -15 -17  -7   7  -5 -20 -16 -17  17 -17  18  -8  -3   7
--------------------------------------------------------------------------------
1: 5
2: 19

Впаскале нужно это все сделать ! 1. в одномерном массиве, состоящем из n вещественных элементов, выч
Впаскале нужно это все сделать ! 1. в одномерном массиве, состоящем из n вещественных элементов, выч
4,4(99 оценок)
Ответ:
1Юліана1
1Юліана1
08.05.2020
1. Определим производительность каждого принтера, т.е. какую часть грамоты он отпечатает за 1 минуту.
1-й: 1/5, 2-й: 1/7, 3-й: 1/9.
2. Работая вместе, все три принтера напечатают за минуту 1/5+1/7+1/9=
143/315 часть грамоты.
3. Определим время, которое понадобится чтобы сделать всю работу
2018/(143/315) ≈ 4445 мин.
4. Определим, сколько грамот напечатает за это время каждый принтер.
1-й: 4445/5 = 889, 2-й: 4445/7 = 635, 3-й: 4445/9 = 493.8.
5. Поскольку 3-й принтер не успевает напечатать одну грамоту, поправим время работы: 494х9 = 4446 мин.
6. Проверка. 889+635+494 = 2018.

ответ: 4446 мин или 3 суток 2 часа 6 минут
4,8(12 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ