3或7的倍数

给定一个正整数n,求小于或等于n的3或7的所有倍数的计数。 例如:

null
Input : n = 10Output : Count = 4The multiples are 3, 6, 7 and 9Input : n = 25Output : Count = 10The multiples are 3, 6, 7, 9, 12, 14, 15, 18, 21 and 24

一个简单的解决方案是迭代从1到n的所有数字,每当一个数字是3或7的倍数或两者的倍数时递增计数。

C++

// A Simple C++ program to find count of all
// numbers that multiples
#include<iostream>
using namespace std;
// Returns count of all numbers smaller than
// or equal to n and multiples of 3 or 7 or both
int countMultiples( int n)
{
int res = 0;
for ( int i=1; i<=n; i++)
if (i%3==0 || i%7 == 0)
res++;
return res;
}
// Driver code
int main()
{
cout << "Count = " << countMultiples(25);
}


JAVA

// A Simple Java program to
// find count of all numbers
// that multiples
import java.io.*;
class GFG
{
// Returns count of all numbers
// smaller than or equal to n
// and multiples of 3 or 7 or both
static int countMultiples( int n)
{
int res = 0 ;
for ( int i = 1 ; i <= n; i++)
if (i % 3 == 0 || i % 7 == 0 )
res++;
return res;
}
// Driver Code
public static void main (String[] args)
{
System.out.print( "Count = " );
System.out.println(countMultiples( 25 ));
}
}
// This code is contributed by m_kit


Python3

# A Simple Python3 program to
# find count of all numbers
# that multiples
# Returns count of all numbers
# smaller than or equal to n
# and multiples of 3 or 7 or both
def countMultiples(n):
res = 0 ;
for i in range ( 1 , n + 1 ):
if (i % 3 = = 0 or i % 7 = = 0 ):
res + = 1 ;
return res;
# Driver code
print ( "Count =" , countMultiples( 25 ));
# This code is contributed by mits


C#

// A Simple C# program to
// find count of all numbers
// that are multiples of 3 or 7
using System;
class GFG
{
// Returns count of all
// numbers smaller than
// or equal to n  and
// are multiples of 3 or
// 7 or both
static int countMultiples( int n)
{
int res = 0;
for ( int i = 1; i <= n; i++)
if (i % 3 == 0 || i % 7 == 0)
res++;
return res;
}
// Driver Code
static public void Main ()
{
Console.Write( "Count = " );
Console.WriteLine(countMultiples(25));
}
}
// This code is contributed by ajit


PHP

<?php
// A Simple PHP program to find count
// of all numbers that multiples
// Returns count of all numbers
// smaller than or equal to n
// and multiples of 3 or 7 or both
function countMultiples( $n )
{
$res = 0;
for ( $i = 1; $i <= $n ; $i ++)
if ( $i % 3 == 0 || $i % 7 == 0)
$res ++;
return $res ;
}
// Driver code
echo "Count = " ,countMultiples(25);
// This code is contributed by aj_36
?>


Javascript

<script>
// A Simple JavaScript program to find count
// of all numbers that multiples
// Returns count of all numbers
// smaller than or equal to n
// and multiples of 3 or 7 or both
function countMultiples(n)
{
let res = 0;
for (let i = 1; i <= n; i++)
if (i % 3 == 0 || i % 7 == 0)
res++;
return res;
}
// Driver code
document.write( "Count = " +countMultiples(25));
// This code is contributed by bobby
</script>


输出:

Count = 10

时间复杂性: O(n) 一个有效的解决方案可以在O(1)时间内解决上述问题。这个想法是计算3的倍数,加上7的倍数,然后减去21的倍数,因为它们被计算两次。

count = n/3 + n/7 - n/21 

C++

// A better C++ program to find count of all
// numbers that multiples
#include<iostream>
using namespace std;
// Returns count of all numbers smaller than
// or equal to n and multiples of 3 or 7 or both
int countMultiples( int n)
{
return n/3 + n/7 -n/21;
}
// Driver code
int main()
{
cout << "Count = " << countMultiples(25);
}


JAVA

// A better Java program to
// find count of all numbers
// that multiples
import java.io.*;
class GFG
{
// Returns count of all numbers
// smaller than or equal to n
// and multiples of 3 or 7 or both
static int countMultiples( int n)
{
return n / 3 + n / 7 - n / 21 ;
}
// Driver code
public static void main (String args [] )
{
System.out.println( "Count = " +
countMultiples( 25 ));
}
}
// This code is contributed by aj_36


Python 3

# Python 3 program to find count of
# all numbers that multiples
# Returns count of all numbers
# smaller than or equal to n and
# multiples of 3 or 7 or both
def countMultiples(n):
return n / 3 + n / 7 - n / 21 ;
# Driver code
n = (( int )(countMultiples( 25 )));
print ( "Count =" , n);
# This code is contributed
# by Shivi_Aggarwal


C#

// A better Java program to
// find count of all numbers
// that multiples
using System;
class GFG
{
// Returns count of all numbers
// smaller than or equal to n
// and multiples of 3 or 7 or both
static int countMultiples( int n)
{
return n / 3 + n / 7 - n / 21;
}
// Driver Code
static public void Main ()
{
Console.WriteLine( "Count = " +
countMultiples(25));
}
}
// This code is contributed by m_kit


PHP

<?php
// A better PHP program to find count
// of all numbers that multiples
// Returns count of all numbers
// smaller than or equal to n
// and multiples of 3 or 7 or both
function countMultiples( $n )
{
return floor ( $n / 3 + $n / 7 - $n / 21);
}
// Driver code
echo "Count = " , countMultiples(25);
// This code is contributed by ajit
?>


Javascript

<script>
// JavaScript program to find count
// of all numbers that multiples
// Returns count of all numbers
// smaller than or equal to n
// and multiples of 3 or 7 or both
function countMultiples(n)
{
return Math.floor(n / 3 + n / 7 - n / 21);
}
// Driver code
document.write( "Count = " +countMultiples(25));
// This code is contributed by bobby
</script>


输出:

Count = 10

时间复杂性: O(1) 练习: 现在试着在O(1)时间内找出所有小于或等于n的数的和,以及3或7或两者的倍数。 本文由 苏拉布·古普塔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以写一篇文章,然后将文章邮寄给评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

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