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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2011, 18:41   #1
Renge
Пользователь
 
Аватар для Renge
 
Регистрация: 07.12.2010
Сообщений: 35
По умолчанию Найти тройку простых чисел

Вот, значица, программу я написала, и, на удивление, она даже и работает, но соответственно неправильно, то есть выводит неправильный ответ и не один раз. Но с последним я потом попробую разобраться.
Нужно вывести первую тройку простых чисел a,b,c, обаладающую свойством, что a=b^3-c^3. В программе обозначения те же. Первая тройка таких чисел 19, 3, 2.
Код:
    WriteLn('');
    b:=2;
    Repeat
      z:=0;
      For i:=1 To b Do 
       Begin
       If (b mod i=0) and (b<>i) and (i<>1) then inc(z); {проверка на простое}
       If (z=0) then
       For c:=1 To b Do
        Begin
        a:=b*b*b-c*c*c; {проверка на соответствие условию}
        z:=0;
        For x:=1 To a Do {проверка на простое}
         Begin If (a mod x=0) and (a<>x) and (x<>1) then inc(z);
         If (z=0) then Begin
                           Write(a:5, b:5,c:5);
                           a1:=0;
                           End
         else inc(b);
         End;
        End;
      End;
    Until (a1=0);

Последний раз редактировалось Stilet; 19.09.2011 в 21:28.
Renge вне форума Ответить с цитированием
Старый 19.09.2011, 21:43   #2
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

У вас пропущена проверка С на простое
Код:
    b:=2;
    Repeat
      z:=0;
      For i:=2 To b-1 Do   {проверка на простое}
       If b mod i=0 then inc(z);
      If (z=0) then
       For c:=2 To b-1 Do
        Begin
         For i:=2 To c-1 Do    {проверка на простое}
          If c mod i=0 then inc(z);
         if z=0 then
          begin
           a:=b*b*b-c*c*c;
           For i:=2 To a-1 Do {проверка на простое}
            If a mod i=0 then inc(z);
           If (z=0) then
            Begin
              Write(a:5, b:5,c:5);
              a1:=0
             End;
          End;
         end;
     inc(b);
    Until (a1=0);
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 19.09.2011, 22:42   #3
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Для экономии машинного времени простое число мижно искать таким циклом(i-счетчик, a-проверяемое число):
Код:
for i:=2 to a div 2 do
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 19.09.2011, 22:49   #4
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Цитата:
Для экономии машинного времени простое число мижно искать таким циклом(i-счетчик, a-проверяемое число):
Код:
for i:=2 to a div 2 do
тогда уж так
Код:
for i:=2 to trunc(sqrt(a)) do
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для поиска простых, простых парных и взаимнопростых чисел in da fly Помощь студентам 1 26.05.2011 23:30
выбор из ряда чисел простых чисел изо Паскаль, Turbo Pascal, PascalABC.NET 5 13.04.2011 22:51
Найти наибольшую по длине последовательность простых чисел в массиве Лесная Эльфийка Помощь студентам 2 14.12.2010 16:24
Массив простых чисел Anni12 Общие вопросы C/C++ 2 07.12.2010 21:34
Нахождение простых чисел. Lunex.08 Общие вопросы C/C++ 7 10.04.2009 17:01