zp1278_1.cpp
来自「浙江大学acm在线判题器代码集。 本人在浙大acm判题器上的所有代码(心血) 」· C++ 代码 · 共 56 行
CPP
56 行
//---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
#include <iostream>
using namespace std;
int a[10000000];
int main(int argc, char* argv[])
{
int z,i,l,m,mb,p,k,j,f,g,s,t=1;
cin>>z>>i>>m>>l;
while (z || l || i ||m)
{
z%=m;
l%=m; i%=m;
p=(l*z-l+i)%m;
mb=m;
while (p%mb)
{
g=p; p=mb; mb=g%mb;
}
m/=mb;
f=1;g=1;
s=1;
a[1]=1;
while (f)
{
g*=z;
g%=m;
f+=g;
f%=m;
s++;
a[s]=f;
if (s%2)
{
k=0;
for (j=1;j<=s/2;j++)
if (a[j]!=a[j+s/2])
{ k=1;break; }
if (!k)
{ s/=2;break; }
}
}
cout<<"Case "<<t<<": "<<s<<endl;
cin>>z>>i>>m>>l;
t++;
}
return 0;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?