2257: #B. 不太随机的随机数列(语法周赛 Round 6(思维场))

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:24 解决:14

题目描述

33DAI 想要生成一个比较随机的数列,但是他忘记了比较好的随机数生成器该怎么写了,于是写下了下面这串代码。

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int seed = 33;
    while (1)
    {
        cout << seed << "\n";
        seed = seed * seed % 233;
    }
    return 0;
} 

显然这串代码在运行后会陷入死循环,一直不停地输出,每行会输出一个整数。请你帮他算算他输出的第 x 行是多少。


输入

第一行一个整数 x。

输出

输出一个整数,即上面代码输出的第 x 行的内容。

样例输入 复制

1

样例输出 复制

33

提示

1 
33 
3 
184 
16 
46 

样例解释

上方代码输出的前 16 行如下:

33
157
184
71
148
2
4
16
23
63
8
64
135
51
38
46 

数据规模与约定

对于 100\% 的数据,1 \le x \le 10^{12}

  • 子任务 1(30 分):1\le x\le 100
  • 子任务 2(30 分):x = 10^9
  • 子任务 3(40 分):没有特殊限制。

来源/分类