16 #region Problem1

17 private static void Problem1()

18 {

19 // la somme des nombres inférieurs à 1000 qui sont multiples de 3 et de 5

20 int sum = Enumerable.Range(1, 999).Where(n => ((n % 3) == 0 || (n % 5) == 0)).Sum();

21 Console.WriteLine("Result => {0}", sum);

22 }

23 #endregion

24

25 #region Problem2

26 private static void Problem2()

27 {

28 // la somme des termes de la suite de Fibonacci qui sont inférieurs à 4 millions

29 int sum = Fibonacci().Where(n => ((n % 2) == 0)).TakeWhile(n => (n < 4000000)).Sum();

30 Console.WriteLine("Result => {0}", sum);

31 }

32

33 private static IEnumerable<int> Fibonacci()

34 {

35 int a = 1;

36 int b = 2;

37 while(true)

38 {

39 int tmp = a;

40 yield return tmp;

41 a = b;

42 b = tmp + b;

43 }

44 }

45 #endregion

46

47 #region Problem6

48 private static void Problem6()

49 {

50 // le carré de la somme moins la somme des carré... mais est-ce bien la peine de le commenter ^^

51 int difference =

52 Enumerable.Range(1, 100).Sum().Square() - Enumerable.Range(1, 100).Select(i => i.Square()).Sum();

53

54 Console.WriteLine(difference);

55 }

56

57 private static int Square(this int n)

58 {

59 return (int)Math.Pow(n, 2);

60 }

61 #endregion

62

63 #region Problem9

64 private static void Problem9()

65 {

66 // trouver le triplet pythagoricien pour lequel a + b + c = 1000

67 var triplet = (from i in Enumerable.Range(1, 999)

68 from j in Enumerable.Range(i + 1, 999 - i)

69 let k = 1000 - i - j

70 where i.Square() + j.Square() == k.Square()

71 select new { A = i, B = j, C = k }).First();

72

73 Console.WriteLine("a={0}, b={1}, c={2}", triplet.A, triplet.B, triplet.C);

74 }

75 #endregion


PS : si ça en intéresse certains, j'ai la solution des 10 premiers problèmes en C# 3.0.