给定一个正整数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