Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define int int64_t
  3. #define F first
  4. #define S second
  5.  
  6. using namespace std;
  7. const int N = (1LL<<20);
  8. const int INF = 1e18+7;
  9. const int MOD = 1e9+7;
  10.  
  11. int n,k;
  12. string s;
  13. bool used[N];
  14. vector<int> prime;
  15.  
  16. string ss="0123456789abcdef";
  17.  
  18. bool isprime(int x) {
  19. for(int i=2;i<=sqrt(x);i++)
  20. if(x%i==0) return false;
  21. return true;
  22. }
  23.  
  24. string get(int x) {
  25. string ttt;
  26. while(x) ttt+=ss[x%16], x/=16;
  27. reverse(ttt.begin(), ttt.end());
  28. return ttt;
  29. }
  30.  
  31. void compute1()
  32. {
  33. for(int i=2;i<N;i++) used[i]=true;
  34. for (int i=2;i<N;i++) {
  35. if (used[i]==true) {
  36. prime.push_back(i);
  37. for (int j=i*i;j<N;j+=i){
  38. used[j]=false;
  39. }
  40. }
  41. }
  42. }
  43.  
  44. vector<pair<int,vector<int>>> t;
  45. void compute2()
  46. {
  47. for(int i=0;i<t.size();i++){
  48. t[i].S.push_back(prime[i+1]);
  49. t[i].S.push_back(prime[i]);
  50. t[i].F=prime[i]*prime[i+1];
  51. }
  52. }
  53.  
  54. int32_t main()
  55. {
  56. ios_base::sync_with_stdio(false);
  57. cin.tie(0); cout.tie(0);
  58. // freopen("input.txt","r",stdin);
  59. // freopen("output.txt","w",stdout);
  60. cin>>n>>k;
  61. cin>>s;
  62. compute1();
  63. t.resize(prime.size()-1);
  64. compute2();
  65. int number=0,p=1;
  66. for (int i=s.size()-1;i>=0;i--) {
  67. number+=ss.find(s[i])*p; p*=16;
  68. }
  69. if(k==2){
  70. for(int i=max((int)sqrt(number)-220,(int)2);;i++)
  71. if(isprime(i) && isprime(number/i) && number%i==0 && number!=i*i){
  72. cout<<get(i)<<endl<<get(number/i)<<endl;
  73. break;
  74. }
  75. }else{
  76. for(auto i : t) {
  77. for(auto j : t) {
  78. if(i.F*j.F!=number) continue;
  79. for(auto y : i.S)
  80. cout<<get(y)<<endl;
  81. for(auto y : j.S)
  82. cout<<get(y)<<endl;
  83. return 0;
  84. }
  85. }
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement