Решение задачи "Конфеты " с Codeforces

Без пояснения   Просмотров: 26


Недавно Вова нашел n фантиков от конфет. Он помнит, что он покупал x конфет в первый день, 2x конфет во второй день, 4x конфет в третий день, …, 2k−1x конфет в k-й день. Но есть проблема: Вова не помнит ни x, ни k, но он уверен, что x и k — положительные целые числа и k>1.

Вова будет удовлетворен, если вы назовете ему любое положительное целое число x такое, что существует целое число k>1, при котором x+2x+4x+⋯+2k−1x=n. Гарантируется, что существует как минимум одно решение. Обратите внимание: k>1.

Вам нужно ответить на t независимых наборов тестовых данных.

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int t, n;
    cin >> t;
    for(int i = 0; i < t; ++i){
        cin >> n;
        int p = 2;
        int s = 3;
        while(n % s != 0){
            p *= 2;
            s+=p;
        }
        cout << n / s << endl;
    }
    return 0;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться