test.cpp 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include "socketio.hpp"
  2. #include "BigInt64.hpp"
  3. #include <xoshiro.hpp>
  4. #include <iostream>
  5. #include <chrono>
  6. unsigned long long nanoTime(){
  7. using namespace std;
  8. using namespace std::chrono;
  9. return duration_cast<nanoseconds>(high_resolution_clock::now().time_since_epoch()).count();
  10. }
  11. template<typename T>
  12. std::ostream& operator<<(std::ostream& out, std::vector<T> o){
  13. out << "[";
  14. for(unsigned int i = 0;i < o.size();i++){
  15. if(o[i] == '\r')continue;
  16. out << o[i];
  17. if(i < o.size() - 1)
  18. out << ", ";
  19. }
  20. return out << "]";
  21. }
  22. template<>
  23. std::ostream& operator<< <char>(std::ostream& out, std::vector<char> o){
  24. for(unsigned int i = 0;i < o.size();i++){
  25. out << o[i];
  26. }
  27. return out;
  28. }
  29. int main(){
  30. xoshiro_256 gen(1);
  31. BigInt a(323);
  32. BigInt b(343453423ull);
  33. //BigInt mod(gen, 5);
  34. BigInt mod("179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624227998859");
  35. mod.suba(BigInt(234723947982312ull));
  36. std::cout << "Mod " << mod.toString() << std::endl;
  37. std::cout << mod.rawString() << std::endl;
  38. std::cout << "(" << a.toString() << " ^ " << std::flush;
  39. a = a.modPow(b,mod);
  40. std::cout << "" << b.toString() << ")";
  41. std::cout << " mod " << mod.toString() << "\n";
  42. std::cout << " = " << a.toString() << "\n";
  43. }
  44. /*int mian(){
  45. cppsocket sock("192.168.178.79", 80);
  46. //cppsocket sock("127.0.0.1", 80);
  47. std::vector<char> toSend(10);
  48. for(unsigned int i = 0;i < toSend.size();i++){
  49. toSend[i] = (char)(i * i) % 10 + 'a';
  50. }
  51. //std::cout << errno << std::endl;
  52. try{
  53. for(int i = 0;i < 100;i++){
  54. sock.write(toSend);
  55. std::cout << "Rec" << std::endl;
  56. std::cout << sock.receive() << std::endl;
  57. //std::this_thread::sleep_for(std::chrono::milliseconds(1));
  58. }
  59. }
  60. catch(std::exception& e){
  61. std::cout << e.what() << std::endl;
  62. }
  63. //std::cout << "Sent " << std::to_string(toSend.size()) << ", Receiving..." << std::endl;
  64. //sock.write(std::vector<char>(1,1));
  65. //std::vector<char> vec = sock.receive();
  66. //std::cout << (vec == toSend);
  67. //std::cout << vec << std::endl;
  68. //vec = sock.receive();
  69. //std::cout << vec << std::endl;
  70. return 0;
  71. }*/