// Problem 1: Linear Congruential Generator
#include <bits/stdc++.h>
using namespace std;
int main() {
long long m = 100, a = 17, c = 43, x = 1;
for (int i = 0; i < 10; i++) {
x = (a * x + c) % m;
cout << x << " ";
}
cout << endl;
return 0;
}
/*
Q1. Do you see repeating numbers?
= Yes. The sequence eventually repeats because the generator works in a cycle.
Q2. How long before it repeats?
= The repeat length (period) depends on m, a, c. For small m like 100,
the cycle comes quickly. Larger m increases the period.
*/
Ly8gUHJvYmxlbSAxOiBMaW5lYXIgQ29uZ3J1ZW50aWFsIEdlbmVyYXRvcgoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGxvbmcgbG9uZyBtID0gMTAwLCBhID0gMTcsIGMgPSA0MywgeCA9IDE7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspIHsKICAgICAgICB4ID0gKGEgKiB4ICsgYykgJSBtOwogICAgICAgIGNvdXQgPDwgeCA8PCAiICI7CiAgICB9CiAgICBjb3V0IDw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQoKLyoKUTEuIERvIHlvdSBzZWUgcmVwZWF0aW5nIG51bWJlcnM/Cj0gWWVzLiBUaGUgc2VxdWVuY2UgZXZlbnR1YWxseSByZXBlYXRzIGJlY2F1c2UgdGhlIGdlbmVyYXRvciB3b3JrcyBpbiBhIGN5Y2xlLgoKUTIuIEhvdyBsb25nIGJlZm9yZSBpdCByZXBlYXRzPwo9IFRoZSByZXBlYXQgbGVuZ3RoIChwZXJpb2QpIGRlcGVuZHMgb24gbSwgYSwgYy4gRm9yIHNtYWxsIG0gbGlrZSAxMDAsIAp0aGUgY3ljbGUgY29tZXMgcXVpY2tseS4gTGFyZ2VyIG0gaW5jcmVhc2VzIHRoZSBwZXJpb2QuCiovCg==