GitBook

这里写图片描述

这题要求是 输入W 然后输出两 N M 其中N为奇数 M为偶数 并且M需要尽可能小

又题意及数学知识可知 奇数一定会输出“Impossible” 而对于偶数 则可使用暴力遍历 然后进行判断

#include<stdio.h>
int main() {
	int T;
	int i;
	long long W,j,k;
	scanf("%d",&T);
	for(i=1; i<=T; i++) {
		scanf("%lld",&W);
		printf("Case %d: ",i);
		if(W&1)
			printf("Impossible\n");
		else {
			for(j=2; j<=W; j+=2) {
				if(W%j==0)
					if((W/j)&1) {
						k=W/j;
						printf("%lld %lld\n",k,j);
						break;
					}
			}
		}
	}
	return 0;
}

题目地址:【Light】[1116]Ekka Dokka