Условие: Пусть х - натуральное число. Назовём число у его делителем. если 1<=y<=x и остаток от деления х на у равно нулю. Найдите сумму его делителей. ****************** Вот мой исходник, работает на всех значениях, но почему-то компилятор на сервере выдаёт "не полное решение" после 7-ми проверок (из 28 вроде бы). Code: program C; var f, u: text; x, y, s, i: longint; begin assign (f, 'sum.in'); reset (f); assign (u, 'sum.out'); rewrite (u); read (f, x); s:=0; for i:=1 to x do if (x mod i)=0 then s:=s+i; write (u, s); close (f); close (u); end. Что не так?
Если исходник работает, причем тут "компилятор на сервере выдаёт". Какие семь проверок из 28? Я ничего не понял.... P.S. sum.in тоже покажи
Онлайн турнир под системой ejudge. При отправке исходника проводит 28 проверок на различных данных. На тестовых данных всё работает, у них же проходит только 7 тестов. ************ sum.in: 12 sum.out: 28 ************ sum.in: 1000 sum.out: 2340 ************ и т.д. любые числа выполняются. В чём проблема??
Иногда сервера не все типы принимают. попробуй не longint а просто integer или int64. вобщем с этим эксперементируй. или попробуй библиотеку подключить uses wincrt uses crt были такие же проблемы...
Ты чушь то не советуй. "В модуле CRT реализованы специальные процедуры и функции для работы с текстовой информацией на дисплее, позволяющие: управлять текстовыми режимами, организовывать окна вывода на экран, настраивать цвета символов на экране, управлять курсором. Кроме того, в модуль включены функции опроса клавиатуры и процедуры управления встроенным в ПЭВМ динамиком."(с) - эта библиотека была в DOS актуальна, а wincrt - не более,чем её клон под Win... Какое отношение эти библиотеки имеют в описанной выше проблеме?
Тоже думал в типе проблема, изначально стоял integer, после отправки прошло всего 5 тестов. Был вариант, что просто у них данные большие, а с ними integer не работает (отрицательное значение получалось) исправил на longint, программа стала считать числа на много большей длины. Но после отправки пройдено всего 7 тестов. Есть большой вопрос в том, что были ли вообще проверки. Их сервер упал через пол часа от начала (периодически оживал на пару минут), а работоспособным стал за 10 мин до конца (часа 3 в итоге провисел). Могло ли это повлиять на ход тестов и конечный результат?
ахахах вообще щас прикол был. Отправлял исходник другой задачи во время того, когда всё висело, 3 часа оно его компилировало и проверяло, в итоге ответ: "неполное решение" 0 тестов из 28 - 0 баллов. Думаю что за бред, у меня всё работает (в это время они на сервере остановили проверки, всё развисло), отправляю ещё раз, изменив одну букву, на другую (иначе кричало, что такой исходник уже есть). В итоге 27 тестов из 28 - 86 баллов. Я так понял всё таки когда зависло, никаких проверок не было, по таймауту сбрасывало в неверные...
morgan black Может нужна проверка на дурака?Они намеренно вводят строку, а не число. Поставь проверку Ввели ли integer На паскале, к сожалению, не знаю как реализовать.
Code: val(str,int,code); где str -строка с числом, int - переменная типа Integer, куда помещаем число из string, сode - типа Integer, содержащее код ошибки. если code = 0, то все OK