本题注意循环必须要从第二个数开始,因为cycle并不一定从seed开始,还可能从seed以后的开始啊,但网上的大神们只考虑到第二个,我也不知道为毛啊!
#include<stdio.h>
int main()
{
freopen("in.txt","r",stdin);
int z,i,m,l,j,k,shushu=0;
while(scanf("%d%d%d%d",&z,&i,&m,&l)!=EOF)
{
shushu++;
int first=l,shu=1,second;
if(z==0&&i==0&&m==0&&l==0)
break;
l=(z*l+i)%m;
second=l;
while(1)
{
l=(z*l+i)%m;
if(l==first)
break;
if(l==second)
{
shu--;
break;
}
shu++;
}
printf("Case %d: %d\n",shushu,shu+1);
}
return 0;
}