Помогите решить пожайлуста задачи.Заранее благодарен!
1.Натуральные числа a,b,c называются числами Пифагора,если выполняется условие a в квадрвте+b в квадрате=c в квадрате.Напечатать все числа Пифагора
меньшие N
2.Дано натуральное число N.Найти наибольшее число M(m>1) на которое сумма цифр в числовой записи числа N делится без остатка.Если такого числа нет то вывести нет.
2 задачи на Паскале
Да спасибо! Если сможешь то напиши их листинг на Паскале!
Очень прошу....
Очень прошу....
Что касается первой задачи, то решение может быть следующим:
Для второй задачи, решение "в лоб" может быть следующим:
Вопрос об оптимальности данных решений не поднимался
Совместимость с чистым Pascal не гарантируется, теститровалось консольное приложение в Delphi
Код: Выделить всё
procedure Piphagor(N:Integer);
var a,b,c,c2:Integer;
begin
if N<=0 then
begin
WriteLn('N<=0');
Exit;
end
for a:=1 to N do
for b:=a to N do
begin
c2:=sqr(a)+sqr(b);
c:=Round(sqrt(c2));
if (sqr(c)=c2) then
writeln('a=',a,', b=',b,', c=',c);
end;
end;
Код: Выделить всё
procedure Delitel(N:Integer);
var M,i,X:Integer;
S:string;
begin
if N<=0 then
begin
WriteLn('N<=0');
Exit;
end;
M:=0; //Сюда будет записана сумма цифр
S:=IntToStr(N); //строковое представление числа
for i:=1 to Length(S) do
M:=M+StrToInt(S[i]);
X:=1; //Делитель, который мы ищем
for i:=1 to Round(M/2) do
if (M mod i)=0 then
X:=i;
if X=1 then
WriteLn('НЕТ') //Получили простое число, делителей нет
else
WriteLn('Делитель=',X);
end;
Совместимость с чистым Pascal не гарантируется, теститровалось консольное приложение в Delphi