Advertisement
Guest User

Untitled

a guest
May 24th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3. using namespace std;
  4.  
  5. int countDigits(int num)
  6. {
  7. int cnt=0;
  8. while (num>0)
  9. {
  10. num = num / 10;
  11. cnt++;
  12. }
  13. return (cnt);
  14. }
  15.  
  16. bool HappyChet(int num, int numLen)
  17. {
  18. int j, n1 = 0, n2 = 0;
  19.  
  20. for (j=0; j<numLen; j++)
  21. {
  22. if (j >= numLen/2)
  23. n1 += num % 10;
  24.  
  25. else
  26. n2 += num % 10;
  27. num = num / 10;
  28. }
  29.  
  30. return n1==n2;
  31. }
  32.  
  33. bool HappyNechet(int num, int numLen)
  34. {
  35. int j, n1 = 0, n2 = 0;
  36.  
  37. for (j=0; j<numLen; j++)
  38. {
  39. if (j >= (numLen+1)/2)
  40. n1 += num % 10;
  41.  
  42. else
  43. n2 += num % 10;
  44. num = num / 10;
  45. }
  46.  
  47. return n1==n2;
  48. }
  49.  
  50.  
  51. int main(int argc, char* argv[])
  52. {
  53. bool *n;
  54. int len =0;
  55. int x=0,y=0;
  56. if(argc <2)
  57. {
  58. cerr<<"Wgong argument"<<endl;
  59. return(0);
  60. }
  61. sscanf(argv[1], "%d-%d", &x, &y);
  62. if((x<0) || (x>y) || (x==y))
  63. { cout<<"Wrong range"<<endl;
  64. return(-1);
  65. }
  66. for (int i=2;i<=y;i++) {
  67. n[i] = true;
  68. }
  69. for (int i=2;i<=y;i++) {
  70. if (n[i] == true) {
  71. for (int j=i*i;j<=y;j+=i)
  72. n[j] = false;
  73. }
  74. }
  75. for (int i=x; i<=y;i++) {
  76. if (n[i] == true)
  77. { len = countDigits(i);
  78. if (len % 2 == 0)
  79. {
  80. if (HappyChet(i, len))
  81. cerr << i << endl;}
  82. }
  83. }
  84. for(int i=x; i<=y;i++) {
  85. if (n[i] == true)
  86. { len = countDigits(i);
  87. if (len % 2 != 0)
  88. {
  89. if (HappyNechet(i, len))
  90. cerr << i << endl;}
  91. }
  92. }
  93. return(0);
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement