2. Два натуральных числа называются «дружественными», если каждое из них равно сумме всех делителей (кроме его самого) другого (например, числа 220 и 284). Найти все пары «дружественных чисел», которые не больше данного числа N.
Описание алгоритма
Текст программы
<html>
<head>
<title>zadanie1</title>
</head>
<body>
<?php
if (isset($_POST['n'])){
$n = $_POST['n'];
function Sum($n){
$sum = 1; $i; $beg = 2; $d = 1;
if($n & 1){
$d = 2;
$beg = 3;
}
for($i = $beg; $i*$i < $n; $i += $d) if ($n % $i == 0) $sum += ($i + $n / $i);
if ($i*$i == $n)$sum += $i;
return $sum;
}
if($n>100){
$m=1;
$a = [];
for ($i = 0; $i <= $n - $m; $i++) $a[$i] = Sum($i + $m);
for($i = 0; $i <= $n - $m; $i++)
if($a[$i] >= $m && $a[$i] <= $n && $a[$a[$i] - $m] == $i + $m && $i + $m < $a[$i])
echo $i+$m." ".$a[$i].'<br>';
}else{ echo "Дружественных чисел нет.";}
}else {
print <<< HERE
Введите число n:
<form method ="post">
<input type="number" name="n">
<input type="submit" name="Submit" value="Отправить">
</form>
HERE;
}
?>
</body>
</html>
Тестовый пример
Задание для выполнения
На плоскости координатами своих вершин заданы два треугольника. Определите, одинакового ли они типа (прямоугольный, тупоугольный, остроугольный).
Описание алгоритма
Вводятся 12 переменных, координаты каждой точки. Далее высчитывается сумма квадратов двух сторон и квадрат последней стороны. Далее сравниваем по признаку и записываем для каждого результата значение в новую переменную. Аналогично для второго треугольника. Далее сравниваем переменные и выводим получившееся значение на экран.
Блок схема
Текст программы
<html>
<head>
<title>zadanie1</title>
</head>
<body>
<?php
if (isset($_POST['a'])){
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
$d = $_POST['d'];
$e = $_POST['e'];
$f = $_POST['f'];
$a1 = $_POST['a1'];
$b1 = $_POST['b1'];
$c1 = $_POST['c1'];
$d1 = $_POST['d1'];
$e1 = $_POST['e1'];
$f1 = $_POST['f1'];
$sum = pow($c-$a,2)+pow($d-$b,2) + pow($e-$c,2)+pow($f-$d,2);
$CA = pow($a-$e,2)+pow($b-$f,2);
if ($sum == $CA){
$o=0;
} elseif ($sum > $CA) {
$o=1;
}
else
{
$o=2;
}
$sum1 = pow($c1-$a1,2)+pow($d1-$b1,2) + pow($e1-$c1,2)+pow($f1-$d1,2);
$CA1 = pow($a1-$e1,2)+pow($b1-$f1,2);
if ($sum1 == $CA1){
$o1=0;
} elseif ($sum > $CA1) {
$o1=1;
}
else
{
$o1=2;
}
if($o==$o1){
if ($o==$o1=0){
echo"Треугольники одинаковые, прямоугольные";
}elseif($o==$o1=1){
echo"Треугольники одинаковые, остроугольные";
}elseif($o==$o1=2){
echo"Треугольники одинаковые, тупоугольные";
}
}else{
echo"Треугольники разные";
}
} else {print <<< HERE
Введите координаты вершин:
<form method ="post">
a<input type="text" name="a"><input type="text" name="d"<br>
b<input type="text" name="b"><input type="text" name="e"<br>
c<input type="text" name="c"><input type="text" name="f"<br>
<br>
a1<input type="text" name="a1"><input type="text" name="d1"<br>
b1<input type="text" name="b1"><input type="text" name="e1"<br>
c1<input type="text" name="c1"><input type="text" name="f1"<br>
<input type='submit' name="Submit" value='Отправить'>
</form>
HERE;}
?>
</body>
</html>
Тестовый пример
[ДМ1]нет
[ДМ2]нет
[ДМ3]нет
[ДМ4]нет
[ДМ5]Нет