-
Notifications
You must be signed in to change notification settings - Fork 0
/
1073.cpp
89 lines (86 loc) · 2.06 KB
/
1073.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <algorithm>
#include <bitset>
#include <cfloat>
#include <climits>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <iostream>
#include <iterator>
#include <map>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <utility>
#include <vector>
using namespace std;
typedef pair<int,int> pii;
typedef long long ll;
int v[100],l,t[100];
char num[100];
void mul(int x)
{
int sum[100],jinwei=0;
for(int i=l;i>=1;i--)
{
int temp=v[i]*x+jinwei;
sum[i]=temp%10;
jinwei=temp/10;
}
for(int i=1;i<=l;i++)
t[i]=sum[i];
}
int gao()
{
for(int i=1;i<=l;i++)
{
if(v[1]==t[i])
{
int k=i,j=1;
for(j=1;j<=l;j++)
{
int q=j+k-1;
if(q==l)
;
else
q=q%l;
if(v[j]!=t[q])
break;
}
if(j>l)
return 1;
}
}
return 0;
}
void solve()
{
for(int i=2;i<=l;i++)
{
mul(i);
/* for(int i=1;i<=l;i++)
printf("%d",t[i]);
puts("");*/
if(!gao())
{
printf("%s is not cyclic\n",num+1);
return;
}
}
printf("%s is cyclic\n",num+1);
}
int main()
{
while(scanf("%s",num+1)!=EOF)
{
l=strlen(num+1);
for(int i=1;i<=l;i++)
v[i]=num[i]-'0';
solve();
getchar();
}
return 0;
}