Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. #include<iostream>
  2. #include<fstream>
  3. #include<deque>
  4. #include<math.h>
  5. using namespace std;
  6. deque <int> primi;
  7. deque <int> utili;
  8. void calcola_primi(int numeromassimo, int lunghezza, int num[])
  9. {
  10. bool primo=true;
  11. int valore=5;
  12.  
  13. primi.push_back(2);
  14. primi.push_back(3);
  15. while(primi[primi.size()-1]<=numeromassimo)
  16. {
  17. primo=true;
  18. for(int i=0; i<primi.size() && primi[i]<=sqrt(valore);i++)
  19. if(valore%primi[i]==0)
  20. primo=false;
  21. if(primo){
  22. primi.push_back(valore);
  23. if(valore>=(num[0])*(pow(10,lunghezza-1)) && valore <= (num[0]+1)*(pow(10,lunghezza-1)))
  24. {
  25. utili.push_back(valore);
  26. }
  27. }
  28. valore+=2;
  29. }
  30. }
  31. int const maxn=8;
  32. int main()
  33. {
  34. ifstream in("input.txt");
  35. ofstream out("ooutput.txt");
  36. string s;
  37. in>>s;
  38. int lunghezza=s.length(), indice=0;
  39. char numero[maxn];
  40. int num[maxn];
  41. for(int i=0;i<lunghezza;i++)
  42. numero[i]=s[i];
  43.  
  44. for(int i=0;i<lunghezza;i++)
  45. {
  46. if(numero[i]=='0')
  47. num[i]=0;
  48. if(numero[i]=='1')
  49. num[i]=1;
  50. if(numero[i]=='2')
  51. num[i]=2;
  52. if(numero[i]=='3')
  53. num[i]=3;
  54. if(numero[i]=='4')
  55. num[i]=4;
  56. if(numero[i]=='5')
  57. num[i]=5;
  58. if(numero[i]=='6')
  59. num[i]=6;
  60. if(numero[i]=='7')
  61. num[i]=7;
  62. if(numero[i]=='8')
  63. num[i]=8;
  64. if(numero[i]=='9')
  65. num[i]=9;
  66. if(numero[i]=='*')
  67. num[i]=-1;
  68. }
  69. int cerca=(num[0]+1)*(pow(10,lunghezza-1));
  70. calcola_primi(cerca, lunghezza, num);
  71. int solution=0;
  72. for(int i=0;i<utili.size();i++)
  73. {
  74. deque <int> scomposto;
  75. int tmp=utili[i];
  76. while(tmp>=10)
  77. {
  78. scomposto.push_front(tmp%10);
  79. tmp/=10;
  80. }
  81. scomposto.push_front(tmp%10);
  82. bool vero=true;
  83. for(int j=0;j<lunghezza;j++)
  84. {
  85. if(num[j]!=-1)
  86. {
  87. if(num[j]!=scomposto[j])
  88. vero=false;
  89. }
  90. }
  91. if(vero)
  92. solution++;
  93. }
  94. out<<solution;
  95. system("pause");
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement