给定范围内具有奇数因子的元素数

给定范围[ N , M ],找到给定范围内因子奇数的元素数( N M 包括在内)。 例如:

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

A. 简单解决方案 就是从 N .对于每个数字,检查其因子是否为偶数。如果有偶数个因子,则增加这些数的计数,最后打印这些元素的数量。要有效地查找自然数的所有除数,请参阅 自然数的所有除数 有效解决方案 就是观察模式。只有那些数字 完美正方形 有奇数个因素。让我们通过一个例子来分析这个模式。 例如,9有奇数个因子,1、3和9。16也有奇数个因子,1,2,4,8,16。原因是,对于除完美平方外的数字,所有因子都是成对的,但对于完美平方,一个因子是单因子,使总数为奇数。 如何在一个范围内找到完美正方形的数量? 答案是 M n-1 ( 不是n ) 有一点需要注意。兼而有之 N M 包括在内,如果 N 如果是一个完美的正方形,我们将得到一个比实际答案小一的答案。为了理解这一点,考虑范围[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 <bits/stdc++.h>
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
// 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

时间复杂性: O(1) 本文由 迪夫延舒班萨尔酒店 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享