IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Натуральные числа
Максим
сообщение 19.10.2004 15:18
Сообщение #1


Гость






Найти все натуральные числа, не превосходящие заданного числа n, представимые в виде суммы квадратов двух каких-нибудь различных натуральных чисел.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 5)
Amro
сообщение 21.10.2004 10:40
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  2  +


Можно попробывать так, правда вывод плохой ;)
зато всё находит
Код
uses crt;
var
n,f,i,j,nat: integer;
mnoz: set of byte;
begin
clrscr;
write('Задайте число n ');
readln(n);
f:=round(sqrt(n));
for i:=1 to f do
    begin
    for j:=1 to i-1 do
        begin
        nat:=sqr(i)+sqr(j);
        if not (nat in mnoz) then
                             include(mnoz,nat)
                             else nat:=0;
     if (nat<=n)  then
           if nat<>0 then
               write(nat:3);
        end;
    writeln;
    end;
readkey;
end.

Исправленно!!!

Сообщение отредактировано: Amro - 21.10.2004 13:52


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
zx1024
сообщение 21.10.2004 13:33
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


Второй цикл (по j) нужно пустить не до f, а до i-1.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Amro
сообщение 21.10.2004 13:42
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  2  +


Цитата
Второй цикл (по j) нужно пустить не до f, а до i-1.

zx1024 Если сделать так то прога будет находить не все числа!!!
К примеру не будет числа 2, не будет 8-ми, а должно быть!!!
Я согласен с тем что делая второй цикл до f мы перебираем лишнего, но в данной программе быстродействием можно пренебречь ...
Хотя я сам что то глючу, там же сказано разные нат числа, тагды прога будет для двух вариантов
первый если j до i-1
для разных нат чисел, как ты и имел ввиду
второй если J до f
для любых.......

Сообщение отредактировано: Amro - 21.10.2004 13:48


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
zx1024
сообщение 21.10.2004 14:11
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


В любом случае, если нужны одинаковые, то до i.
2*2 + 5*5 = 5*5 + 2*2.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Amro
сообщение 21.10.2004 14:51
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  2  +


Цитата
В любом случае, если нужны одинаковые, то до i.

Точно ....


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 14:03
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"