1) написать программу, находящую для натурального числа все его натуральные делители. 2) написать программу, вычисляющую наибольший общий делитель двух натуральных чисел.
Задача №1 //PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016) Var n, i: integer; Begin writeln ('Введите число'); readln(n); writeln('Делители числа:'); for i := 1 to n div 2 do if (n mod i) = 0 then begin write(i,' '); end; End.
Задача №2 (алгоритм не очень шустрый, но работает и понятный) //PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016) var a, b, x, y, nod: integer;
begin writeln('Введите a,b'); readln(a, b); x := a;y := b; while x <> y do if x > y then x := x - y else y := y - x; nod := x; writeln('NOD(', a, ',', b, ')=', nod); end.
Program rtr1;Uses crt;Var a,b,c,d,di,f,x1,x2:real;Begin Clrscr; Readln(a,b,c,d); f:=0; di:=sqr(2*a*b-2*c*d)-4*(a*a-c*c)*(b*b-d*d); if di>0 then begin x1:=((2*c*d-2*a*b)+sqrt(di))/(2*a*a-2*c*c); x2:=((2*c*d-2*a*b)-sqrt(di))/(2*a*a-2*c*c); if (abs(a*x1+b)=c*x1+d) then f:=f+1; if (abs(a*x2+b)=c*x2+d) then f:=f+1; end else if d=0 then begin x1:=(2*c*d-2*a*b)/(2*a); if (abs(a*x1+b)=c*x1+d)then f:=f+1; end else writeln('Корней нет'); Writeln('Уравнение имеет ',f,' корней ');End.
На языке поисковых запросов Янд-екса (думаю, в Гуг-ле тоже самое) знаки имеют такие значения: a | b - сайты, на которых есть любое слово a или b или оба Сталлоне | Уиллис - найдет все страницы со Сталлоне и все с Уиллисом. 1 200 000 сайтов a & b - сайты, на которых слова а и b есть в одном предложении. Уиллис & Шварценеггер - оба в одном предложении, 94 100 сайтов. Сталлоне & Шварценеггер - тоже оба в одном, 105 900 сайтов. Запрос (Сталлоне | Уиллис) & Шварценеггер выдаст: 1) Сайты Сталлоне & Шварценеггер - 105 900 2) Сайты Уиллис & Шварценеггер - 94 100 Всего 105 900 + 94 100 = 200 000 сайтов.
//PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016)
Var n, i: integer;
Begin
writeln ('Введите число');
readln(n);
writeln('Делители числа:');
for i := 1 to n div 2 do
if (n mod i) = 0 then begin
write(i,' ');
end;
End.
Задача №2 (алгоритм не очень шустрый, но работает и понятный)
//PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016)
var
a, b, x, y, nod: integer;
begin
writeln('Введите a,b');
readln(a, b);
x := a;y := b;
while x <> y do
if x > y
then x := x - y
else y := y - x;
nod := x;
writeln('NOD(', a, ',', b, ')=', nod);
end.