lightoj 1116 - Ekka Dokka 简单数学

给定一个w,问能否分解为一个奇数乘一个偶数...如果不能就是impossible,否则输出偶数最小的答案。

偶数最小的情况就是把所有的2提取出来的...否则另外一个数字一定是偶数...

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define mod 1000007
#define inf 0x3f3f3f3f
#define N 100100
using namespace std;
int main()
{
    int t;
    scanf("%d",&t);
    for(int cas=1; cas<=t; cas++)
    {
        ll w;
        scanf("%lld",&w);
        ll m;
        if(w%2)
        {
            printf("Case %d: Impossible\n",cas);
            continue;
        }
        w=w/2;
        m=2;
        while(w%2==0)
        {
            w=w/2;
            m=m*2;
        }
        printf("Case %d: %lld %lld\n",cas,w,m);
    }
    return 0;
}


你可能感兴趣的:(数学,乱搞,lightoj)