神奇的树

来源:互联网 发布:js左菜单栏点击隐藏 编辑:程序博客网 时间:2024/05/17 08:53

神奇的树

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

SDUT有一颗神奇的苹果树。假如某天早上这树上有x个苹果,那么这树这一天会再结出x个苹果来,也就是说到了晚上会有2*x个苹果,到了深夜,会有专人人来摘苹果,而摘苹果的人总会使苹果数剩下当前数量对m的余数,也就是说假如当前数量为a,那么第二天早上会剩下a%m个苹果。也许聪明的你已经发现了,有可能从某一天开始,这棵树上就再也没有苹果了。那么给你第一天早上的苹果数,请你判断一下是否存在这一天,从这一天开始就再也没有苹果了。如果一直存在的话输出Yes,否则输出No。
 

输入

 多组测试数据。每组测试数据都是一行两个整数,x和m。x表示第一天早上的
苹果树,m表示余数。1<=x,m<=10^5.

输出

 每组测试数据输出单独一行,Yes或No。

示例输入

1 53 6

示例输出

NoYes

提示

 

来源

 SCFF

示例程序

 
#include <string.h>  #include <stdio.h>  int main()  {      int f[200006];       long x;      int m;         while(scanf("%d %d", &x, &m)!=EOF)      {          memset(f, 0, sizeof(f));          int flag;          while(f[x]==0 && x!=0)          {              f[x]=1;              x=x*2;              x=x%m;          }          if(x==0)          {              printf("Yes\n");          }          if(f[x]==1)          {              printf("No\n");          }      }      return 0;  } 

0 0
原创粉丝点击