Количество чисел, не делящихся на 2, 3 или 5

Прикладное программирование Программирование на Pascal Количество чисел, не делящихся на 2, 3 или 5

Помечено: ,

  • В этой теме 0 ответов, 1 участник, последнее обновление 1 год назад сделано Васильев Владимир Сергеевич.
Просмотр 0 веток ответов
  • Автор
    Сообщения
    • #5584
      @admin
      StudLance.ru

      Задача: дано натуральное число N. Требуется написать программу, которая находит количество натуральных чисел, не превышающих N и не делящихся ни на одно из чисел 2,3,5.
      (1 < N < 1000000000).

      Решение: перебор всех вариантов от 2 до N, которое может быть равно, потребует больших временных затрат, т.е. писать

      s:=0;
      for i:=1 to n do
        if (i mod 2<>0) and (i mod 3<>0) and (i mod 5<>0) then 
          s:=s+1;

      нельзя!

      Количество чисел от 1 до N, делящихся на 2 равно N div 2, подобным образом, число чисел, делящихся на 3 равно N div 3, и число чисел, делящихся на 5 равно N div 5.

      Тогда, число чисел не делящихся на 2, 3, 5 с учетом того, что, например 6 делится и на 2, и на 3, a 10 делится на 2 и на 5, 45 делится на 3 и на 5, равно:

      N-(N div 2+N div 3+N div 5-N div 6-N div 10-N div 15-N div 30).

      program One_2;
      
      uses
        CRT;
      
      var
        n, s: longint;
      begin
        ClrScr;
        readln(n); {ввод числа n}
        s := n - (n div 2 + n div 3 + n div 5 - n div 6 - n div 10 - n div 15 - n div 30);
        writeln(s); {вывод результата}
        readln;
      end.

      StudLance.ru

Просмотр 0 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.
×