Даны два БоЛьШуЩиХ ЧиСЛа. Проверьте, делится ли их произведение ** девять. Формат файла...

0 голосов
47 просмотров

Даны два БоЛьШуЩиХ ЧиСЛа. Проверьте, делится ли их произведение на девять.

Формат файла входных данных:

В двух строках входного файла даны два целых неотрицательных числа, по одному в строке. Запись каждого из них состоит из не более чем 106 цифр.

Формат файла выходных данных:

В единственной строке выходного файла выведите "YES", если произведение данных чисел делится на девять, и "NO" в противном случае (без кавычек).


Программу я написал, но есть проблема: время действия программы превышает 3 секунды, помогите пожалуйста решить эту проблему


Информатика (337 баллов) | 47 просмотров
0

Числа могут быть и 10 в 6 степени.... пришлите свой вариант программы

0

Можете сделать ввод через Readln()

0

если не выйдет с Readln() сделайте имя входного файла nine.in а выходного nine.out

Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1456 от 26.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadAllLines('data.txt');
  var f:=OpenWrite('output.txt');
  var s1:=s[0].ToCharArray.Select(c->c.ToDigit).Sum;
  if s1 mod 9=0 then Writeln(f,'YES')
  else begin
    var s2:=s[1].ToCharArray.Select(c->c.ToDigit).Sum;
    if s2 mod 9=0 then Writeln(f,'YES')
    else
      if (s1 mod 3=0) and (s2 mod 3=0) then Writeln(f,'YES')
      else Writeln(f,'NO')
    end;
  f.Close
end.


Скачать вложение Текст (TXT)
Скачать вложение Текст (TXT)
(150k баллов)
0

3*3 не делится на 9 ?=))

0

Я узнал что эта программа не работает на FreePascal

0

Сделай ввод через Readln()

0

Спасибо за помощь