Задачи в паскале.
Задача 1.
Посчитайте количество четырехзначных чисел, кратных 9.
Первоначальное значение K=0. Начальное значение параметра цикла равно 1000, конечное
значение равно 9999. Внутри цикла организовать проверку условия: кратно ли число девяти (если
остаток от целочисленного деления на 9 равен нулю, то число кратно 9). Использовать формулу
подсчета количества.
Задача 2.
Вы должны другу 4000 рублей. Он предлагает выплатить ему долг следующим образом: в
первую неделю – 1 руб, во вторую – 2 руб, в третью – 4 руб, в четвертую – 8 руб и т. д. в
течении 12 недель. Выгодно ли вам такое предложение? Какую сумму вы выплатите таким Первоначальное значение S=1 (S – сколько руб выплачивает за t недель), X=1 (X – сколько руб
выплачивает в неделю). Начальное значение параметра цикла равно 2, конечное значение равно
12. Использовать формулу подсчёта суммы. После выполнения цикла сравнить полученную
сумму (переменную S) с числом 4000 и дать ответ выгодно ли вам такое предложение.
1) Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в N-ю степень, где N - количество цифр в числе, равна самому числу. Напримерт153=1^3 5^3 3^3. Найдитетвсе трехзначныеии четырехзначныеичисла Армстронга
var a,b,c,d,a2:integer;
begin
for a:=100 to 9999 do begin
d:=0;
a2:=a;
while (a2 <> 0) do begin
b:= a2 mod 10;
a2:= a2 div 10;
if a<1000 then c:= (b*b*b)
else c:=(b*b*b*b);
d:= d+c;
end;
if (a = d) then writeln('число армстронга ==> ', a);
end;
end.
2)Авmoморфные числа. Натуральное число называется автоморфным, если оно равно последним цифрам своего квадрата. Например: 25 и 625. Напишите программу, которая вводит натуральное число N и выводит на акран все автоморфные числа, не превосходящие N.
var n,i,l:integer; s1,s2:string;
begin
write('n = '); readln(n);
for i:=1 to n do
begin
str(i,s1);
l:=length(s1);
str(i*i,s2);
if s1=copy(s2,length(s2)-l+1,l) then writeln(i,' ',i*i);
end;
end.
3)Модифицированный алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока остаток не станет равно нулю; тогда второе число и есть НОД. Напишите программу, которая реализует этот алгоритм.
var a,b,nod,k:integer;
begin
readln(a,b);
k:=0;
while (a<>0)and(b<>0) do
begin
if a>b then a:=a mod b else b:=b mod a;
k:=k+1;
end;
nod:=a+b;
writeln(nod,' ',k);
end.