□Problem
自然数nを連続した自然数の和で表すには何通りのやり方があるか.
15の時は4通り.
15=1+2+3+4+5=4+5+6=7+8
□Solution
昔,考えた方法で解きました.同じようなことが書かれているページがあったので↓参照ということで.
http://www.bun-eido.co.jp/t_math/sjournal/sj28/sj282530.pdf
□Code
package p2140;
import java.util.*;
import java.lang.*;
import java.math.*;
import java.io.*;
import static java.lang.Math.*;
import static java.util.Arrays.*;
// AC
public class Main{
Scanner sc=new Scanner(System.in);
final int INF=Integer.MAX_VALUE;
final double EPS=1e-9;
void run(){
int n=sc.nextInt();
n*=2;
int m=(int)Math.sqrt(n);
int ans=0;
for(int i=1; i<=m+1; i++){
if(n%i==0){
int d=i;
int e=n/i;
if(d>e)
break;
if((d+e)%2==1)
ans++;
}
}
println(ans+"");
}
void print(String s){
System.out.print(s);
}
void println(String s){
System.out.println(s);
}
public static void main(String[] args){
// System.setOut(new PrintStream(new BufferedOutputStream(System.out)));
new Main().run();
}
}
0 件のコメント:
コメントを投稿