CodeIQの問題をやっていたのですがタイムアウトしてしまいます。
###問題
問題は以下です。
【問題】
1から1,000,000までの整数の範囲で、連続する2値を合計します。
2値の合計が、整数Nの倍数になる組み合わせを、数えてください。
ただし、整数Nは、2≦N≦1,000 の範囲とします。例
整数Nが11の場合、「5, 6(合計は11)」、「16,17(合計は33)」……という組み合わせが、整数Nの倍数になります。
また、連続する2値の最小は「1, 2(合計は3)」、最大は、「999999, 1000000(合計は1999999)」になります。【入力】
標準入力から、複数行のデータが与えられます。1行のデータが、1つの整数Nになります。【出力】
1行ずつ処理を行ない、その答えを1行ごと標準出力に出力します。
【入出力サンプル】
Input
307
456
545
165Output
3257
0
1835
6061
ログインが必要なため、以下より転載
https://codeiq.jp/challenge/3117
###作成したコード
C#
1using System; 2 3public class hoge 4{ 5 static void Main() 6 { 7 string line; 8 int num, count = 0, val = 0; 9 10 for(;(line=Console.ReadLine()) != null;) 11 { 12 if(int.TryParse(line, out num)) 13 { 14 for(int i=1;i<1000000;i++) 15 { 16 val = i + (i+1); 17 val %= num; 18 if(val == 0) 19 count++; 20 } 21 Console.WriteLine(count); 22 } 23 } 24 } 25}
for分で回すのがいけないのかなと思いましたが最適解がよくわかりません。
ヒントの様なものでも構いませんので何か教えてください。。。
###追記
処理制限時間は1秒です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/03 08:24
退会済みユーザー
2017/03/03 08:25
2017/03/03 08:27
2017/03/03 08:28