Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2012, 19:50   #1
ubun
Форумчанин
 
Аватар для ubun
 
Регистрация: 06.12.2010
Сообщений: 198
По умолчанию Кошки и Мышки

Решил задачу, но при М<100000000 не работает. Почему ?

Несколько кошек съели М мышек,причем все кошки съели по одинаковому числу мышек и каждая кошка съела больше мышек,чем было
кошек. Вам необходима узнать сколько было кошек. Если вариантов
несколько, необходимо указать их общее число и перечислить все эти
варианты.
Входной файл содержит единственное целое число М (2<=М<=2*10^9)-
количество мышек
А в выходном файле первая строка содержит количество
возможных решений, во второй строке через пробел N чисел, в порядке возростания, каждое из которых равно возможному числу кошек, иначе слово NO

Вот решение:
Код:
Var m:longint;
   i,s,n:integer;
    a: array [1..10000] of integer;
  begin
assign(input, 'input.txt') ; reset (input);
 assign(output, 'output.txt'); rewrite (output);
  readln(m);
  s:=0;
  n:=0;
  if m=2 then
  begin
   writeln('1');
   writeln('1');
    end else
    begin
    for i:=1 to (m div 2) do
    if (m mod i=0) and (i< (m div 2)) then
    begin
    s:=s+1;
    a[i]:=i;
    end;
    end;
     begin
       for i:=1 to s do
       if a[i]<>0 then n:=n+1;
     end;
     if n>0 then writeln(n);
     begin
       for i:=1 to s do
       if a[i]<>0 then write(a[i],' ');
     end;
     end.
ubun вне форума Ответить с цитированием
Старый 27.11.2012, 20:35   #2
ubun
Форумчанин
 
Аватар для ubun
 
Регистрация: 06.12.2010
Сообщений: 198
По умолчанию

Оказывается и при M<100000 не работает. Почему?
ubun вне форума Ответить с цитированием
Старый 27.11.2012, 20:37   #3
ubun
Форумчанин
 
Аватар для ubun
 
Регистрация: 06.12.2010
Сообщений: 198
По умолчанию

Извиняюсь знак неправильно написал
правильно так M>1000000.
Так почемуже не работает?
ubun вне форума Ответить с цитированием
Старый 27.11.2012, 20:52   #4
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

число слишком большое для типа integer, юзай long int
NewLamer&Programer вне форума Ответить с цитированием
Старый 27.11.2012, 21:02   #5
ubun
Форумчанин
 
Аватар для ubun
 
Регистрация: 06.12.2010
Сообщений: 198
По умолчанию

пробовал но все равно не работае В fp выдает сообщение об ошибке 201 (я не знаю что за ошибка)
ubun вне форума Ответить с цитированием
Старый 27.11.2012, 21:56   #6
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

юзай longword
кстати для счетчиков тоже

и вот это
Код:
    a[i]:=i;
ты зря используешь.
Рекомендую завести еще один счетчик и инкрементировать его при выполнение условия в цикле
a.k.a. Angelicos Phosphoros
Мой сайт

Последний раз редактировалось New man; 27.11.2012 в 22:00.
New man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глюки мышки pufystyj Компьютерное железо 2 05.10.2012 09:08
События мышки liljon Общие вопросы C/C++ 4 24.04.2010 01:23
2 курсорчика мышки Zeraim Общие вопросы Delphi 9 04.04.2009 00:45
Отключение мышки Yuran Win Api 2 23.06.2008 13:08