Задание для выполнения

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]Нет

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: