Объяснение:
Начало;
Ввод X, Y (они у нас уже есть в табл. 1 и 2 (к примеру, в 1 табл. X=9, Y=14));
X=Y (у нас X=9, Y=14; 9 не равна 14, а это значит мы идём по стрелочке "нет");
X>Y (9 не больше 14, идём по стрелочке "нет");
Y=Y-X (подставляем в формулу наши X, Y из табл. 1 и получаем Y=14-9=5);
Теперь переходим на новую строчку табл. 1. X остаётся прежним (9), а в Y пишем тот, что мы нашли (5). Начинаем всё заново.
X=Y (9 не равна 5, идём по стрелочке "нет");
X>Y (9 больше 5, а это значит мы идём по стрелочке "да");
X=X-Y (подставляем в формулу наши X, Y. Это уже будет X=9-5=4)
Теперь переходим на новую строчку табл. 1. X теперь 4, а Y остаётся прежним (5). Начинаем всё заново.
Так проделываем каждый раз пока X не станет равно Y (в 1 табл. это 1=1).
например, это можно сделать так:
UPD: изменено
#include <iostream>
#include <set>
#include <cmath>
using namespace std;
bool prime(int n){
for(int i = 2; i * i <= n; i++)
if(n % i == 0)
return false;
return true;
}
signed main() {
int n;
cin >> n;
set<int> ok;
ok.insert(2);
ok.insert(3);
ok.insert(5);
int sum = 0, cnt = 0,cur = 2;
while(cnt != n){
bool norm = true;
for(int i = 2; i * i <= cur; i++)
if(cur % i == 0 && ( ok.find(i) == ok.end() && prime(i)) || (cur % (n/i) == 0 && ok.find(n/i) == ok.end() && prime(n/i)))
norm = false;
if(norm){sum += cur; cnt++;}
cur++;
}
cout << sum;
}