Број елемената са непарним факторима у датом опсегу

Број елемената са непарним факторима у датом опсегу
Пробајте на ГфГ пракси #працтицеЛинкДив { дисплаи: ноне !импортант; }

Дат опсег [ н м ] пронађите број елемената који имају непаран број фактора у датом опсегу ( н и м инклузивно). 
Примери:  
 

Input : n = 5 m = 100 Output : 8 The numbers with odd factors are 9 16 25 36 49 64 81 and 100 Input : n = 8 m = 65 Output : 6 Input : n = 10 m = 23500 Output : 150 


 

Препоручена пракса Број непарних фактора Покушајте!


А Једноставно решење је проћи кроз све бројеве почевши од н . За сваки број проверите да ли има паран број фактора. Ако има паран број фактора онда повећајте број таквих бројева и коначно одштампајте број таквих елемената. Да бисте ефикасно пронашли све делиоце природног броја Сви делиоци природног броја
Ан Ефикасно решење је посматрати образац. Само они бројеви који су савршени квадрати имају непаран број фактора. Хајде да анализирамо овај образац кроз пример.
На пример, 9 има непаран број фактора 1 3 и 9. 16 такође има непаран број фактора 1 2 4 8 16. Разлог за то је за бројеве који нису савршени квадрати, сви фактори су у облику парова, али за савршене квадрате један чинилац је појединачни и чини збир непарним.
Како пронаћи број савршених квадрата у распону?  
Одговор је разлика између квадратног корена м и н-1 ( не н
Постоји мало упозорење. Као и једно и друго н и м укључују ако н је савршен квадрат добићемо одговор који је мањи од једног стварног одговора. Да бисте ово разумели, размотрите опсег [4 36]. Одговор је 5, односно бројеви 4 9 16 25 и 36. 
Али ако урадимо (36**0,5) - (4**0,5) добијамо 4. Дакле, да бисмо избегли ову семантичку грешку, узимамо н-1 .
 

C++
   // C++ program to count number of odd squares   // in given range [n m]   #include          using     namespace     std  ;   int     countOddSquares  (  int     n       int     m  )   {      return     (  int  )  pow  (  m    0.5  )     -     (  int  )  pow  (  n  -1    0.5  );   }   // Driver code   int     main  ()   {      int     n     =     5       m     =     100  ;      cout      < <     'Count is '      < <     countOddSquares  (  n       m  );      return     0  ;   }   
Java
   // Java program to count number of odd squares   // in given range [n m]   import     java.io.*  ;   import     java.util.*  ;   import     java.lang.*  ;   class   GFG   {      public     static     int     countOddSquares  (  int     n       int     m  )      {      return     (  int  )  Math  .  pow  ((  double  )  m    0.5  )     -     (  int  )  Math  .  pow  ((  double  )  n  -  1    0.5  );      }      // Driver code for above functions      public     static     void     main     (  String  []     args  )      {      int     n     =     5       m     =     100  ;      System  .  out  .  print  (  'Count is '     +     countOddSquares  (  n       m  ));      }   }   // Mohit Gupta_OMG  <(o_0)>   
Python3
   # Python program to count number of odd squares   # in given range [n m]   def   countOddSquares  (  n     m  ):   return   int  (  m  **  0.5  )   -   int  ((  n  -  1  )  **  0.5  )   # Driver code   n   =   5   m   =   100   print  (  'Count is'     countOddSquares  (  n     m  ))   # Mohit Gupta_OMG  <0_o>   
C#
   // C# program to count number of odd   // squares in given range [n m]   using     System  ;   class     GFG     {          // Function to count odd squares      public     static     int     countOddSquares  (  int     n       int     m  )      {      return     (  int  )  Math  .  Pow  ((  double  )  m       0.5  )     -         (  int  )  Math  .  Pow  ((  double  )  n     -     1       0.5  );      }          // Driver code       public     static     void     Main     ()      {      int     n     =     5       m     =     100  ;      Console  .  Write  (  'Count is '     +     countOddSquares  (  n       m  ));      }   }   // This code is contributed by Nitin Mittal.   
PHP
      // PHP program to count    // number of odd squares   // in given range [n m]   function   countOddSquares  (  $n     $m  )   {   return   pow  (  $m     0.5  )   -   pow  (  $n   -   1     0.5  );   }   // Driver code   $n   =   5  ;   $m   =   100  ;   echo   'Count is '      countOddSquares  (  $n     $m  );   // This code is contributed   // by nitin mittal.    ?>   
JavaScript
    <  script  >   // JavaScript program to count number of odd squares   // in given range [n m]   function     countOddSquares  (  n       m  )      {      return     Math  .  pow  (  m    0.5  )     -     Math  .  pow  (  n  -  1    0.5  );      }   // Driver Code      let     n     =     5       m     =     100  ;      document  .  write  (  'Count is '     +     countOddSquares  (  n       m  ));        <  /script>   

Излаз :  

Count is 8 


Временска сложеност: О(1)
Помоћни простор: О(1)