fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <queue>
  6.  
  7. long long gcd(long long a, long long b) {
  8. if (a > b) return gcd(b, a);
  9. if (a == 0) return b;
  10. return gcd(b % a, a);
  11. }
  12.  
  13. long long pow(long long a, long long n, long long mod) {
  14. long long ret = 1;
  15. for (; n > 0; n >>= 1, a = a * a % mod) {
  16. if (n % 2 == 1) ret = ret * a % mod;
  17. }
  18. return ret;
  19. }
  20.  
  21. long long inv(long long a, long long mod) {
  22. a = (a % mod + mod) % mod;
  23. if (gcd(a, mod) != 1) return 0;
  24. return pow(a, mod - 2, mod);
  25. }
  26.  
  27. int main() {
  28. for (long long mod = 3; mod < 100; ++mod) {
  29. bool isPrime = true;
  30. for (long long div = 2; div * div <= mod; ++div) {
  31. isPrime &= mod % div != 0;
  32. }
  33. if (!isPrime) continue;
  34. long long sum = 0;
  35. for (int i = 1; i < mod; ++i) {
  36. sum += i * inv(1 + i - i * i, mod) % mod;
  37. sum %= mod;
  38. }
  39. long long b = (mod - pow(5, (mod - 3) / 2, mod)) % mod;
  40. std::cout << mod << " " << sum << " " << b << std::endl;
  41. }
  42. }
  43.  
Success #stdin #stdout 0s 4188KB
stdin
Standard input is empty
stdout
3 2 2
5 0 0
7 3 3
11 2 2
13 8 8
17 7 7
19 15 15
23 14 14
29 23 23
31 6 6
37 15 15
41 8 8
43 26 26
47 19 19
53 32 32
59 47 47
61 12 12
67 27 27
71 14 14
73 44 44
79 63 63
83 50 50
89 71 71
97 39 39