問題
縦と横の長さがそれぞれ1の正方形のブロック片をN個持っています。これらの
N個の正方形のブロック片から好きな数使用してパネルを作ることにしました。
例えば、N=20個のブロック片を持っていた時、12個のブロック片を選んで使用して、縦に3個横に4個使った3×4の大きさのパネルや、縦に2個横に6個使った2×6の大きさのパネルなどを作ることができます。
ただし、3×3のような縦と横に同じだけブロック片を使ったパネルはできません。
一行目に、ブロック片の数Nが与えられる。
一行で、N個のブロック片を好きな数選んだとき、作ることのできる長方形のパネルの種類の数を出力せよ。
という問題になっています。よろしくお願いします。
制約
N: 整数 1≦N≦10の6乗
例:入力値6の場合
1×2 1×3 1×4 1×5 1×6 2×1 2×3 3×1 3×2 4×1 5×1 6×1の12種類なので
12と出力する
試したコード
import java.util.*;
public class Main {
public static void main(String args[] ) throws Exception {
Scanner sc = new Scanner(System.in);
int s = sc.nextInt();
int count=0;
for(int i=1;i<=s;i++){
for(int r=1;r<=(s-i);r++){
if(i!=r){
count++;
}
}
}
System.out.println(count);
}
}
〇入力値:6 出力値:12
〇入力値:1 出力値:0
×入力値:32 出力値:480(正解は114)