4331: [GESP202409六级] 小杨和整数拆分

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

## 题目背景 2024 年 9 月 GESP C++ 六级编程第 1 题 ## 题目描述 小杨有一个正整数 $n$,小杨想将它拆分成若干个完全平方数的和,同时小杨希望拆分的数量越少越好。 小杨请你编写程序计算出总和为 $n$ 的完全平方数的最少数量。

输入

## 输入格式 第一行包含一个正整数 $n$,含义如题面所示。

输出

## 输出格式 输出一个整数,代表总和为 $n$ 的完全平方数的最少数量。

样例输入 复制

18

样例输出 复制

2

提示

## 样例1 ```input1 18 ``` ```output1 2 ``` ## 样例解释 $18=9+9=16+1+1$ ,其中最少需要 $2$ 个完全平方数。 ## 数据范围 | 子任务编号 | 数据点占比 | $n $ | | ---------- | ---------- | ----------- | | 1 | $20\%$ | $\leq 20$ | | 2 | $40\%$ | $\leq 1000$ | | 3 | $40 \%$ | $\leq 10^5$ | 对于全部数据,保证有 $1 \leq n \leq 10^5$ 。

来源/分类