XPEHOMETP
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору GennadyN Цитата: как, используя ваткомовский фортран, собрать свою dll-ку? | Честно говоря, этот компилятор фортрана я не осилил! При попытке установить пришел в полный ужас. По умолчанию он ставится в корневик диска С, а у меня там места мало было, поставил на D. Ни фига не работает - везде прописаны пути установки в корневик С, и программа установки не проверяет, куда все это реально поставили. Ну, я не троглодит полный, где надо, все поменял. Дальше - чище: программы, предлагаемые в качестве образца, не компилируются! Я имею в виду некий проектик под винду, который должен давать трехмерное изображение интерьера... Справки хуже я в жизни не видел! Ну, все в стиле Винды 3.11 - куча мелких файликов с одним корневым, в качестве оглавления. Это можно пережить, у Compaq Visual Fortran справка в том же духе. Но она хоть вполне вменяемая, а тут... Некоторые файлики в справке есть, но из корневика не вызываются, ссылка на их содержание не активна. Особенности компилятора (точнее, диалекта фортрана) ни фига не объяснены. Типа, у нас просто обычный фортран-77, и для него прямо-таки в порядке вещей и динамические массивы, и использование директивы Pragma... Я понимаю, что некогда, когда это все вводилось как расширения стандарта Ф-77, стандартных образцов для этого не было, каждый изощрялся как хотел. Но уж теперь, можно хотя бы объяснить, что и как именно не соответствует стандарту? По-моему, переход в Open Source не пошел этому компилятору на пользу. Конкретнее, его пользователям - точно. Так что... Нельзя ли было взять для изготовления dll что-то другое? Наверно, вышло бы сразу, мне так кажется... Добавлено: KChernov Цитата: Простейший вариант: Делаем цикл (по i например) от 2 до целой части от корня из n. На каждой итерации цикла проверяем, делится ли n на i нацело. Если не делится - едем дальше, если делится - печатаем очередной делитель и новый n=n/i и запускаем внутренний цикл, пока новый n не перестанет нацело делиться на i. Как только перестанет - тоже едем дольше. В результате по завершению программы будет выдан список всех простых делителей исходного числа. | Ваш алгоритм не исключает проверку в качестве множителей чисел, которые не являются простыми. А они такую проверку могут пройти! И попасть в число обнаруженных простых множителей. Что не хорошо. Хотя рациональное зерно в этом есть: наверно, проще найти вообще все делители числа (отсеивая изначально все четные числа, кроме 2), а потом уже среди них "решетом Эратосфена" отсеивая числа вроде 9, 21 и т.п., которые не являются простыми. ЗЫ: Да, в условии задачи не сказано точно, как именно должны быть представлены эти простые делители. В виде некоего множества, позволяющего при перемножении воссоздать исходное число, или просто их надо указать по порядку. Разница существенна. Например, число делится на 8, т.е. на 2 в 3-й степени. Надо ли указывать все три двойки в качестве множителей, или достаточно одной, типа, все равно делится? От этого зависит построение условия выхода из цикла перебора (второй вариант просто примитивен). | Всего записей: 2489 | Зарегистр. 21-06-2005 | Отправлено: 10:18 22-11-2010 | Исправлено: XPEHOMETP, 10:58 22-11-2010 |
|