HDU 1339 A Simple Task

    xiaoxiao2025-06-12  12

    A Simple Task

    Problem Description

    Given a positive integer n and the odd integer o and the nonnegative integer p such that n = o2^p.ExampleFor n = 24, o = 3 and p = 3.TaskWrite a program which for each data set:reads a positive integer n,computes the odd integer o and the nonnegative integer p such that n = o2^p,writes the result. 

    Input

    The first line of the input contains exactly one positive integer d equal to the number of data sets, 1 <= d <= 10. The data sets follow.Each data set consists of exactly one line containing exactly one integer n, 1 <= n <= 10^6. 

    Output

    The output should consists of exactly d lines, one line for each data set.Line i, 1 <= i <= d, corresponds to the i-th input and should contain two integers o and p separated by a single space such that n = o2^p. 

    Sample Input

    1

    24 

    Sample Output

    3 3

    题意:输入一个数n,然后找到o和p满足式子n = o2^p。运算量不大,直接穷举。

    #include<cstdio> #include<cstring> #include<cmath> using namespace std; int main() { int k,i,j,n,t; scanf("%d",&t); while(t--) { scanf("%d",&n); for(j=0; j<20; j++) { k=1<<j; i=n/k; if(i%2&&i*k==n) { printf("%d %d\n",i,j); break; } } } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1299867.html
    最新回复(0)