水平8320長方形を作成する方法


質問する


上根にはn個の辺が1の正方形がある.この正方形で作れる矩形の総数はいくらですか?
2つの矩形AとBがある場合、Aを移動、回転させてBを作成できない場合、2つの矩形は異なる.長方形を作成するときは、長方形を変形させたり、ある長方形に別の長方形を配置したりすることはできません.また、矩形は正方形で満たさなければなりません.
入力
第1行はn(1≦n≦10000)を与える.
しゅつりょく
作成できる長方形の個数を出力します.
入力例1
6
サンプル出力1
8
ヒント

解法


まず、1×1サイズの矩形を接続して作成することができるので、少なくともn個の矩形を作成することができる.
エッジサイズが1の長方形を上から削除します.
次に、2つのエッジに乗算された値はn以下である.
すなわち、1辺が根nより小さい.(1つのエッジの長さが2より大きいため)
基準エッジが2からルートnの場合、他のエッジが基準エッジの長さからnより小さい場合、矩形を生成するには、2つのエッジの乗算値がnより小さい必要があります.

コード#コード#

n = int(input())
result = n
# 만들 수 있는 직사각형이 2*2, 2*3, 2*4, ... 한쪽 변은 루트n보다 작다
for i in range(2, int(n ** 0.5) + 1):
    for j in range(i, n):
        if i * j <= n:
            result += 1
        else:
            break
print(result)
水平8320長方形を作成する方法