Solution cpp
Создано: 24 января 2026 г.
Отвечено с использованием GPT-5.2 Thinking от Chat01
Создано: 24 января 2026 г.
Отвечено с использованием GPT-5.2 Thinking от Chat01
cpp#include <iostream> #include <vector> using namespace std; int row, col, n; int a[100][100]; int getZValue(int s) // s = row + col of X { int k = row; s %= n; // moving up by n gives same row for (int i = 0; i < s; i++) { k--; if (k < 0) k = n - 1; // wrap to last row } return a[k][col]; } int getRowColSumOfElement(int x) // find X and set row,col { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (a[i][j] == x) { row = i; col = j; return row + col; } } } row = col = 0; // (X will always exist as per problem) return 0; } bool isprime(int x) { if (x < 2) return false; if (x % 2 == 0) return x == 2; for (int d = 3; 1LL * d * d <= x; d += 2) { if (x % d == 0) return false; } return true; } void PrimeFactors(int x) { long long v = x; vector<long long> f; if (v == 0) { // not expected, but keeps output defined cout << 0; return; } if (v < 0) { // just in case negatives appear f.push_back(-1); v = -v; } if (v == 1) { f.push_back(1); } else { for (long long p = 2; p * p <= v; ++p) { while (v % p == 0) { f.push_back(p); v /= p; } } if (v > 1) f.push_back(v); } for (size_t i = 0; i < f.size(); i++) { if (i) cout << " "; cout << f[i]; } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) cin >> a[i][j]; int x; cin >> x; int s = getRowColSumOfElement(x); int z = getZValue(s); cout << z << "\n"; PrimeFactors(z); cout << "\n"; return 0; }