Сумма делителей на паскаль

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by morgan black, 4 Feb 2012.

  1. morgan black

    morgan black New Member

    Joined:
    23 Feb 2011
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    Условие:
    Пусть х - натуральное число. Назовём число у его делителем. если 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.
    Что не так?
     
  2. Steam[777]

    Steam[777] Elder - Старейшина

    Joined:
    27 Sep 2010
    Messages:
    296
    Likes Received:
    43
    Reputations:
    25
    Если исходник работает, причем тут "компилятор на сервере выдаёт".
    Какие семь проверок из 28?
    Я ничего не понял....

    P.S. sum.in тоже покажи
     
  3. morgan black

    morgan black New Member

    Joined:
    23 Feb 2011
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    Онлайн турнир под системой ejudge. При отправке исходника проводит 28 проверок на различных данных. На тестовых данных всё работает, у них же проходит только 7 тестов.
    ************
    sum.in: 12
    sum.out: 28
    ************
    sum.in: 1000
    sum.out: 2340
    ************
    и т.д. любые числа выполняются. В чём проблема??
     
  4. Anifuck

    Anifuck Member

    Joined:
    12 Nov 2010
    Messages:
    78
    Likes Received:
    7
    Reputations:
    0
    Иногда сервера не все типы принимают. попробуй не longint а просто integer или int64. вобщем с этим эксперементируй. или попробуй библиотеку подключить
    uses wincrt
    uses crt

    были такие же проблемы...
     
  5. Steam[777]

    Steam[777] Elder - Старейшина

    Joined:
    27 Sep 2010
    Messages:
    296
    Likes Received:
    43
    Reputations:
    25
    Ты чушь то не советуй.
    "В модуле CRT реализованы специальные процедуры и
    функции для работы с текстовой информацией на дисплее, позволяющие: управлять текстовыми режимами, организовывать окна вывода на экран, настраивать цвета символов на экране, управлять курсором. Кроме того, в модуль включены функции опроса клавиатуры и процедуры управления встроенным в ПЭВМ динамиком."(с) - эта библиотека была в DOS актуальна, а wincrt - не более,чем её клон под Win...
    Какое отношение эти библиотеки имеют в описанной выше проблеме?
     
  6. morgan black

    morgan black New Member

    Joined:
    23 Feb 2011
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    Тоже думал в типе проблема, изначально стоял integer, после отправки прошло всего 5 тестов. Был вариант, что просто у них данные большие, а с ними integer не работает (отрицательное значение получалось) исправил на longint, программа стала считать числа на много большей длины. Но после отправки пройдено всего 7 тестов.
    Есть большой вопрос в том, что были ли вообще проверки. Их сервер упал через пол часа от начала (периодически оживал на пару минут), а работоспособным стал за 10 мин до конца (часа 3 в итоге провисел). Могло ли это повлиять на ход тестов и конечный результат?
     
  7. morgan black

    morgan black New Member

    Joined:
    23 Feb 2011
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    ахахах вообще щас прикол был. Отправлял исходник другой задачи во время того, когда всё висело, 3 часа оно его компилировало и проверяло, в итоге ответ: "неполное решение" 0 тестов из 28 - 0 баллов. Думаю что за бред, у меня всё работает (в это время они на сервере остановили проверки, всё развисло), отправляю ещё раз, изменив одну букву, на другую (иначе кричало, что такой исходник уже есть). В итоге 27 тестов из 28 - 86 баллов. Я так понял всё таки когда зависло, никаких проверок не было, по таймауту сбрасывало в неверные...
     
  8. DJ4J

    DJ4J Member

    Joined:
    23 Aug 2009
    Messages:
    0
    Likes Received:
    53
    Reputations:
    1
    morgan black
    Может нужна проверка на дурака?Они намеренно вводят строку, а не число.
    Поставь проверку
    Ввели ли integer
    На паскале, к сожалению, не знаю как реализовать.
     
  9. vkhacker

    vkhacker New Member

    Joined:
    12 Dec 2009
    Messages:
    1
    Likes Received:
    1
    Reputations:
    0
    Code:
    val(str,int,code);
    где str -строка с числом, int - переменная типа Integer, куда помещаем число из string, сode - типа Integer, содержащее код ошибки. если code = 0, то все OK