指定された範囲内で奇数の因数を持つ要素の数

指定された範囲内で奇数の因数を持つ要素の数
GfG Practice で試してみる #practiceLinkDiv { 表示: なし !重要; }

範囲を指定すると [ n メートル ] 指定された範囲内で奇数の因数を持つ要素の数を見つけます ( n そして メートル 包括的)。 
例:  
 

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 


 

推奨される実践方法 奇数因子を数える 試してみてください!


シンプルな解決策 から始まるすべての数値をループすることです n 。すべての数値について、因数が偶数であるかどうかを確認します。偶数の因数がある場合は、その数のカウントをインクリメントし、最後にそのような要素の数を出力します。自然数のすべての約数を効率的に見つけるには、次を参照してください。 自然数のすべての約数
アン 効率的なソリューション パターンを観察することです。該当する数字のみ 完全な正方形 奇数の因数を持っています。例を通してこのパターンを分析してみましょう。
たとえば、9 には奇数の因数 1 3 と 9 があります。16 には奇数の因数 1 2 4 8 16 もあります。その理由は、完全平方以外の数値ではすべての因数がペアの形式になっているのに対し、完全平方では 1 つの因数が 1 つであり、合計が奇数になるためです。
範囲内の完全正方形の数を見つけるにはどうすればよいですか?  
答えは次の平方根の差です。 メートル そして n-1 ( ない
少し注意点があります。両方として n そして メートル 包括的である場合 n は完全な平方であり、実際の答えより 1 未満の答えが得られます。これを理解するには、範囲 [4 36] を考慮してください。答えは 5、つまり 4、9、16、25、36 です。 
しかし、(36**0.5) - (4**0.5) を実行すると、4 が得られます。したがって、このセマンティック エラーを回避するには、次のようにします。 n-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)