結果
問題 | No.152 貯金箱の消失 |
ユーザー |
![]() |
提出日時 | 2017-01-13 09:01:10 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 1,003 ms / 5,000 ms |
コード長 | 2,263 bytes |
コンパイル時間 | 896 ms |
コンパイル使用メモリ | 114,020 KB |
実行使用メモリ | 30,132 KB |
最終ジャッジ日時 | 2024-12-21 10:17:51 |
合計ジャッジ時間 | 5,249 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 12 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;using System.Collections;using System.Collections.Generic;using System.Collections.Specialized;using System.Text;using System.Text.RegularExpressions;using System.Linq;using System.IO;class Program{static private Magatro M = new Magatro();static private void Main(string[]args){M.Scan();M.Solve();}}public class Scanner{private string[] S;private int Index;private char Separator;public Scanner(char separator = ' '){Index = 0;Separator = separator;}private string[] Line(){return Console.ReadLine().Split(Separator);}public string Next(){string result;if (S == null || Index >= S.Length){S = Line();Index = 0;}result = S[Index];Index++;return result;}public int NextInt(){return int.Parse(Next());}public double NextDouble(){return double.Parse(Next());}public long NextLong(){return long.Parse(Next());}}public class Magatro{private int L;public void Scan(){Scanner sc = new Scanner();L = sc.NextInt();}public void Solve(){int loop = (int)Math.Sqrt(L);int cnt = 0;for(int i = 2; i <= loop; i++){for(int j = 1; j < i; j++){int a = i * i - j * j;int b = 2 * i * j;int c = i * i + j * j;if (Gcd(a, b, c) == 1&&a+b+c<=L/4) cnt++;}}Console.WriteLine(cnt);}private int Gcd(params int[] n){int result = n[0];for(int i = 1; i < n.Length; i++){result = Gcd(result, n[i]);}return result;}private int Gcd(int a,int b){if (a < b){Swap(ref a, ref b);}int r = a % b;while (r > 0){a = b;b = r;r = a % b;}return b;}private void Swap(ref int a,ref int b){int temp = a;a = b;b = temp;}}