Можешь доработать если желаешь, основу дал. Програма работает.
Объяснение:
#include <iostream>
using namespace std;
int main()
{
int i,a,b;
cout << "Введите 1 числo: ";
cin >> a;
cout << "Введите 2 числo: ";
cin >> b;
for (i = a; i > 0; i--)
{
if (a % i == 0 && b % i == 0)
{
cout << "nod = " << i;
break;
}
}
if (i==1)
cout << "\nЧисла взаимнопростые!\n";
else
cout << "\nЧисла не взаимнопростые!\n"; return 0;
}
Объяснение:
Количество путей до города Х = количество путей добраться в любой из тех городов, из которых есть дорога в Х.
При этом если путь должен не проходить через какой-то город, нужно просто не учитывать этот город при подсчёте сумм. А если город наоборот обязательно должен лежать на пути, тогда для городов, в которые из нужного города идут дороги, в суммах нужно брать только этот город.
С помощью этого наблюдения посчитаем последовательно количество путей до каждого из городов:
var
x,y: integer;
begin
writeln('x=');
read (x);
if (x>=0) then y:=0;
if (x>0) and (x<=1) then y:=x
else y:=sqr(sqr(x));
writeln ('y=',y);
end.