数値の最大剰余を計算しようとしていますが、元の数値を割って最大の剰余を取得する数値を見つけます。これが私の現在のコードです。うまくいくと確信しています。私はそれをもっと速くしたいだけです。何か提案はありますか?
int c=Integer.parseInt(br.readLine());
if(c==2)
pw.println(2);
else if(c%2==0)
{
pw.println(c-1);
}
else
{
max=0;
int numDivided=0;
for(int z=1; z<c; z+=2)
{
if(c%z>max)
{
numDivided=z;
max=c%z;
}
}
pw.println(numDivided);
新しく高速なコード
c=Integer.parseInt(br.readLine());
int largestRemainder = c % ((c/2) + 1);
pw.println(((c/2) + 1));