У Пети есть n квадратных
карточек. Он хочет сложить из них один большой квадрат (без пустот). Сколько
карточек у него останется?
Вход. Одно натуральное число n (1 ≤
n ≤ 109).
Выход. Вывести количество оставшихся
карточек.
Пример
входа 1 |
Пример
выхода 1 |
1 |
0 |
|
|
Пример
входа 2 |
Пример
выхода 2 |
27 |
2 |
математика
Анализ алгоритма
Максимальная сторона квадрата,
который может сложить Петя, равна a = . Следовательно
на складывание квадрата Петя потратит a2
карточек. И у него останется n – a2 карточек.
Реализация алгоритма
Читаем входное
значение n. Вычисляем и
выводим ответ.
scanf("%d", &n);
a = (int)sqrt(n);
printf("%d\n", n - a * a);
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int n = con.nextInt();
int a = (int)Math.sqrt(n);
int res = n - a * a;
System.out.println(res);
con.close();
}
}
Python реализация
import math
n = int(input())
a = int(math.sqrt(n))
print(n - a * a)