Как с помощью программирования найти количество идеальных квадратов между двумя числами

Программирование – это способ научить компьютер выполнять различные задачи. Используя программирование, вы можете решать множество задач, в том числе широкий спектр математических задач. В этой статье вы узнаете, как найти общее количество полных квадратов между двумя числами с помощью C ++, Python и JavaScript.

Постановка задачи

Вы дали два номера num1 и num2. Вы должны найти общее количество совершенных квадратов между num1 и num2.

Пример 1 : Пусть num1 = 10 и num2 = 100.

Совершенные квадраты от 10 до 100: 16, 25, 36, 49, 64, 81, 100.

Таким образом, на выходе получается 7.

Пример 2 : Пусть num1 = 15 и num2 = 82.

Совершенные квадраты от 15 до 82: 16, 25, 36, 49, 64, 81.

Таким образом, на выходе получается 6.

Пример 3 : Пусть num1 = 3 и num2 = 36.

Совершенные квадраты от 3 до 36: 4, 9, 16, 25, 36.

Таким образом, на выходе получается 5.

Основной подход к нахождению общего количества идеальных квадратов между двумя числами

Программа на C ++ для подсчета общего количества идеальных квадратов между двумя числами

Ниже представлена ​​реализация C ++ для решения проблемы:

 // C++ program to count the total number of
// perfect squares between 2 numbers
#include <iostream>
using namespace std;
int countTotalSquares(int num1, int num2)
{
int result = 0;
for(int i=num1; i<=num2; i++)
{
for(int j=1; j*j<=i; j++)
{
if(j*j == i)
{
result++;
}
}
}
return result;
}
int main()
{
int num1 = 10;
int num2 = 100;
cout << "Total number of perfect squares between " << num1 << " and " << num2 << ": " << countTotalSquares(num1, num2) << endl;
int num3 = 15;
int num4 = 82;
cout << "Total number of perfect squares between " << num3 << " and " << num4 << ": " << countTotalSquares(num3, num4) << endl;
int num5 = 3;
int num6 = 36;
cout << "Total number of perfect squares between " << num5 << " and " << num6 << ": " << countTotalSquares(num5, num6) << endl;
int num7 = 12;
int num8 = 65;
cout << "Total number of perfect squares between " << num7 << " and " << num8 << ": " << countTotalSquares(num7, num8) << endl;
return 0;
}

Выход :

 Total number of perfect squares between 10 and 100: 7
Total number of perfect squares between 15 and 82: 6
Total number of perfect squares between 3 and 36: 5
Total number of perfect squares between 12 and 65: 5

Связанный: Как рассчитать значение nPr с помощью функций

Программа на Python для подсчета общего количества идеальных квадратов между двумя числами

Затем код Python, чтобы найти общее количество полных квадратов между двумя числами:

 # Python program to count the total number of
# perfect squares between 2 numbers
def countTotalSquares(num1, num2):
result = 0
for i in range(num1, num2+1):
j = 1
while j * j <= i:
if j * j == i:
result = result + 1
j = j + 1
return result
num1 = 10
num2 = 100
print("Total number of perfect squares between", num1, "and", num2, ":", countTotalSquares(num1, num2))
num3 = 15
num4 = 82
print("Total number of perfect squares between", num3, "and", num4, ":", countTotalSquares(num3, num4))
num5 = 3
num6 = 36
print("Total number of perfect squares between", num5, "and", num6, ":", countTotalSquares(num5, num6))
num7 = 12
num8 = 65
print("Total number of perfect squares between", num7, "and", num8, ":", countTotalSquares(num7, num8))

Выход :

 Total number of perfect squares between 10 and 100: 7
Total number of perfect squares between 15 and 82: 6
Total number of perfect squares between 3 and 36: 5
Total number of perfect squares between 12 and 65: 5

Программа на JavaScript для подсчета общего количества идеальных квадратов между двумя числами

Вот как найти общее количество полных квадратов между двумя числами в JavaScript:

 // JavaScript program to count the total number of
// perfect squares between 2 numbers
function countTotalSquares(num1, num2) {
var result = 0;
for(let i=num1; i<=num2; i++) {
for(let j=1; j*j<=i; j++) {
if(j*j == i) {
result++;
}
}
}
return result;
}
var num1 = 10;
var num2 = 100;
document.write("Total number of perfect squares between " + num1 + " and " + num2 + ": " + countTotalSquares(num1, num2) + "<br>");
var num3 = 15;
var num4 = 82;
document.write("Total number of perfect squares between " + num3 + " and " + num4 + ": " + countTotalSquares(num3, num4) + "<br>");
var num5 = 3;
var num6 = 36;
document.write("Total number of perfect squares between " + num5 + " and " + num6 + ": " + countTotalSquares(num5, num6) + "<br>");
var num7 = 12;
var num8 = 65;
document.write("Total number of perfect squares between " + num7 + " and " + num8 + ": " + countTotalSquares(num7, num8) + "<br>");

Выход :

 Total number of perfect squares between 10 and 100: 7
Total number of perfect squares between 15 and 82: 6
Total number of perfect squares between 3 and 36: 5
Total number of perfect squares between 12 and 65: 5

Эффективный подход к нахождению количества идеальных квадратов между двумя числами

Вы также можете найти общее количество полных квадратов между двумя числами, используя следующую формулу:

 Всего нет. полных квадратов между num1 и num2 = floor (sqrt (num2)) - ceil (sqrt (num1)) + 1

Временная сложность этого решения ( O (log num2) ) лучше, чем предыдущий подход ( O ((num2-num1) * sqrt (num2)) ).

Реализация C ++ с использованием эффективной формулы

Ниже приведена реализация C ++ для определения общего количества полных квадратов между двумя числами:

 // C++ program to count the total number of
// perfect squares between 2 numbers
#include <bits/stdc++.h>
using namespace std;
int countTotalSquares(int num1, int num2)
{
return (floor(sqrt(num2)) - ceil(sqrt(num1)) + 1);
}
int main()
{
int num1 = 10;
int num2 = 100;
cout << "Total number of perfect squares between " << num1 << " and " << num2 << ": " << countTotalSquares(num1, num2) << endl;
int num3 = 15;
int num4 = 82;
cout << "Total number of perfect squares between " << num3 << " and " << num4 << ": " << countTotalSquares(num3, num4) << endl;
int num5 = 3;
int num6 = 36;
cout << "Total number of perfect squares between " << num5 << " and " << num6 << ": " << countTotalSquares(num5, num6) << endl;
int num7 = 12;
int num8 = 65;
cout << "Total number of perfect squares between " << num7 << " and " << num8 << ": " << countTotalSquares(num7, num8) << endl;
return 0;
}

Выход :

 Total number of perfect squares between 10 and 100: 7
Total number of perfect squares between 15 and 82: 6
Total number of perfect squares between 3 and 36: 5
Total number of perfect squares between 12 and 65: 5

Связанный: Как найти среднее значение массива в Python, C ++, JavaScript и C

Реализация Python с использованием эффективной формулы

Ниже представлена ​​реализация Python для определения общего количества полных квадратов между двумя числами:

 # Python program to count the total number of
# perfect squares between 2 numbers
def countTotalSquares(num1, num2):
return (math.floor(math.sqrt(num2)) - math.ceil(math.sqrt(num1)) + 1)
num1 = 10
num2 = 100
print("Total number of perfect squares between", num1, "and", num2, ":", countTotalSquares(num1, num2))
num3 = 15
num4 = 82
print("Total number of perfect squares between", num3, "and", num4, ":", countTotalSquares(num3, num4))
num5 = 3
num6 = 36
print("Total number of perfect squares between", num5, "and", num6, ":", countTotalSquares(num5, num6))
num7 = 12
num8 = 65
print("Total number of perfect squares between", num7, "and", num8, ":", countTotalSquares(num7, num8))

Выход :

 Total number of perfect squares between 10 and 100: 7
Total number of perfect squares between 15 and 82: 6
Total number of perfect squares between 3 and 36: 5
Total number of perfect squares between 12 and 65: 5

Связанный: Абстрактные классы в Python: Руководство для начинающих

Реализация JavaScript с использованием эффективных формул

Ниже приведена реализация JavaScript для определения общего количества полных квадратов между двумя числами:

 // JavaScript program to count the total number of
// perfect squares between 2 numbers
function countTotalSquares(num1, num2) {
return (Math.floor(Math.sqrt(num2)) - Math.ceil(Math.sqrt(num1)) + 1);
}
var num1 = 10;
var num2 = 100;
document.write("Total number of perfect squares between " + num1 + " and " + num2 + ": " + countTotalSquares(num1, num2) + "<br>");
var num3 = 15;
var num4 = 82;
document.write("Total number of perfect squares between " + num3 + " and " + num4 + ": " + countTotalSquares(num3, num4) + "<br>");
var num5 = 3;
var num6 = 36;
document.write("Total number of perfect squares between " + num5 + " and " + num6 + ": " + countTotalSquares(num5, num6) + "<br>");
var num7 = 12;
var num8 = 65;
document.write("Total number of perfect squares between " + num7 + " and " + num8 + ": " + countTotalSquares(num7, num8) + "<br>");

Выход :

 Total number of perfect squares between 10 and 100: 7
Total number of perfect squares between 15 and 82: 6
Total number of perfect squares between 3 and 36: 5
Total number of perfect squares between 12 and 65: 5

Монетизируйте свои навыки программирования

Кодирование считается одним из лучших профессиональных навыков 21 века. Он предлагает неограниченные возможности для ваших творческих идей, которые могут принести вам немного денег. Вы можете зарабатывать деньги на фрилансе, написании технических блогов, разработке приложений и API, продаже электронных книг и курсов и т. Д. Единственный способ узнать, что вам нравится, – это погрузиться в него!