Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Учу язык Фортран
Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Вот тупое решение (в предположении, что оно единственное). Но это Fortran-4 для EC ЭВМ (IBM 360/370) . Однозначно вывод не подойдёт для современного фортрана. Уже в Фортране-77 была конструкция If-Then-Else, в F-4 такого не было. Оператор языка начинается с 7 позиции. У меня нет под руками ни учебника, ни компиллятора, чтобы проверить. Вспоминал по своей программе двадцатилетней давности (Как молоды мы были!!).
Код: Выделить весь код
      N=95443536

      DO 1 I=3,N
      IF (N.NE.(I-2)*(I-1)*I) GO TO 1 
      PRINT 101,N,I-2,I-1,I
      GO TO 100
    1 CONTINUE

  100 STOP
  101 Format(1X,I8,'=',I3,'*',I3,'*',I3)
      END
Наверное, если посоображать немного, решение, как мне кажется, должно быть где-то около корня кубического из исходного числа. И если эту идею реализовать, можно существенно снизить время ваполнения программы. Но это - иллюстрация тезиса: прежде чем бросаться писАть код, надо проработать методику решения. А на каком языке - дело десятое: главное, чтобы хватало библиотеки готовых функций. Писать заново какой-то необходимый мат аппарат - дело муторное и неблагодарное. Помнится, переписывал в Фортран функцию из Алгола (кто сейчас его вспомнит, а вот библиотеки для научных расчетов там были богатые).

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 04-07-2011 в 11:14.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:54, 04-07-2011 | #8

Название темы: Учу язык Фортран