問題
https://codeforces.com/contest/1343/problem/A
問題概要
のときを満たすようなxを一つ求めよ。
考察
与えられた式を変形するととなります。よってがnの約数となるようなkを見つけてきてをすればよいです。
kは2から順に一つずつ見ていけばよいです。なので、kはたかだか29までとなります。
#include <bits/stdc++.h> using namespace std; int main() { int t; cin >> t; while (t--) { int n; cin >> n; int k = 2; while (n % ((int)pow(2, k) - 1) != 0) k++; cout << n / ((int)pow(2, k) - 1) << endl; } }
個人的反省
算数力のなさを遺憾なく発揮して式変形に時間をかけてしまい、A問題なのに10分以上かかってしまいました。結果はともかくとして、立ち回りとしてはこれを後回しにしてまずBを見るべきでしたね。