fork download
  1. #include <iostream>
  2. #include <iterator>
  3. #include <algorithm>
  4. #include <vector>
  5. #include <functional>
  6.  
  7. const int e_key = 47;
  8. const int d_key = 15;
  9. const int n = 391;
  10.  
  11. struct do_crypt : std::binary_function<int, int, int> {
  12. int operator()(int input, int key) const {
  13. int result = 1;
  14. for (int i=0; i<key; i++) {
  15. result *= input;
  16. result %= n;
  17. }
  18. return result;
  19. }
  20. };
  21.  
  22. int main() {
  23. std::string msg = "Drink more Ovaltine.";
  24. std::vector<int> encrypted;
  25.  
  26. std::transform(msg.begin(), msg.end(),
  27. std::back_inserter(encrypted),
  28. std::bind2nd(do_crypt(), e_key));
  29.  
  30. std::transform(encrypted.begin(), encrypted.end(),
  31. std::ostream_iterator<char>(std::cout, ""),
  32. std::bind2nd(do_crypt(), d_key));
  33. std::cout << "\n";
  34.  
  35. return 0;
  36. }
  37.  
Success #stdin #stdout 0s 3060KB
stdin
Standard input is empty
stdout
Drink more Ovaltine.