最新消息:点击查看大S的省钱秘笈

Vijos P1249 最聪明的机器人 C语言版

Vijos题解 Slyar 29浏览 0评论

文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

背景 Background

Slyar设计了很多机器人。但是它们都认为自己是最强的,于是,一场比赛开始了~

描述 Description

机器人们都想知道谁是最聪明的,于是它们进行如下一种游戏。
这个游戏由2次机器人进行,2个机器人分别报出一个数n1,n2,谁报得大,就以这个数作为基数,并由它先开始,轮流进行如下操作:
选取一个不大于基数的素数或者1,从基数中扣掉它。谁把基数扣到0,谁就赢了。
为了公平,他们会进行10次比赛,请你分别输出这10次谁获胜了。

输入格式 Input Format

每组测试数据均有10行
每行2个数n1,n2 (n1,n2<=maxlongint n1<>n2)

输出格式 Output Format

对每组测试数据输出10行,每行一个整数1或2
表示哪个机器人能获胜

Tip:呃。。。这题是哥德巴赫猜想,一开始我也没想到。大于2 的素数可以表示成4K+1或4K-1,然后对4k,4k+1,4k+2,4k+3进行讨论就行了。。。最后结果是当n=4的时候,能减的数是1,2,3则必为败态,所以只要大数%4==0则必败。。。

#include <stdio.h>

int main(){
long i,n1,n2;
for (i=1;i<=10;i++){
scanf("%ld%ld",&n1,&n2);
if(n1>n2)
if (n1%4==0) printf("2");
else printf("1");
else
if (n2%4==0) printf("1");
else printf("2");
}
system("pause");
return 0;
}

转载请注明:Slyar Home » Vijos P1249 最聪明的机器人 C语言版

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址