- 少し前に問題文をどこかのまとめで見かけたので
- 頑張れば Linq だけ使って1文で書けるのかもしれない。と思った。
using System;
using System.Collections.Generic;
using System.Linq;
public class Hello
{
public static void Main()
{
var ps = Enumerable.Range(0, 13 * 13).Select(v => new { A = v / 13 + 1, B = v % 13 + 1 }).Where(p => p.A < p.B).ToList();
ps = ps.Where(p => ps.Where(q => q.A * q.B == p.A * p.B).Count() != 1).ToList();
ps = ps.Where(p => ps.Where(q => q.A + q.B == p.A + p.B).Count() != 1).ToList();
ps = ps.Where(p => ps.Where(q => q.A - q.B == p.A - p.B).Count() != 1).ToList();
ps = ps.Where(p => ps.Where(q => q.A * q.B == p.A * p.B).Count() != 1).ToList();
{
var ps2 = ps.Where(p => ps.Where(q => q.A + q.B == p.A + p.B).Count() != 1).ToList();
var ps3 = ps.Where(p => ps.Where(q => q.A - q.B == p.A - p.B).Count() != 1).ToList();
ps = ps2.Where(p => ps3.Any(q => q.A == p.A && q.B == p.B)).ToList();
}
ps.ForEach(p => Console.WriteLine(p.A + " " + p.B));
}
}