// If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
//
// Find the sum of all the multiples of 3 or 5 below 1000.
using System;
using System.Collections.Generic;
using System.Text;
namespace projecteuler001
{
class Program
{
static void Main(string[] args)
{
F3();
}
private static int sumOfDiv(int n)
{
int sum = n;
for (int i = n + 1; i < 1000; i++)
{
if (i % n == 0)
{
sum += i;
}
}
return sum;
}
private static int sumOfDiv2(int n)
{
int p = 1000 / n;
return n * p * (1 + p) / 2;
}
private static void F1()
{
Console.WriteLine(new System.Diagnostics.StackTrace().GetFrame(0).GetMethod());
DateTime timeStart = DateTime.Now;
int sum = 0;
for (int i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
Console.WriteLine("Total is " + sum);
Console.WriteLine("Total Milliseconds is " + DateTime.Now.Subtract(timeStart).TotalMilliseconds);
}
private static void F2()
{
Console.WriteLine(new System.Diagnostics.StackTrace().GetFrame(0).GetMethod());
DateTime timeStart = DateTime.Now;
Console.WriteLine("Total is " + (sumOfDiv(3) + sumOfDiv(5) - sumOfDiv(15)));
Console.WriteLine("Total Milliseconds is " + DateTime.Now.Subtract(timeStart).TotalMilliseconds);
}
private static void F3()
{
Console.WriteLine(new System.Diagnostics.StackTrace().GetFrame(0).GetMethod());
DateTime timeStart = DateTime.Now;
Console.WriteLine("Total is " + (sumOfDiv2(3) + sumOfDiv2(5) - sumOfDiv2(15)));
Console.WriteLine("Total Milliseconds is " + DateTime.Now.Subtract(timeStart).TotalMilliseconds);
}
}
}
/*
Void F1()
Total is 233168
Total Milliseconds is 9.0012
Void F2()
Total is 233168
Total Milliseconds is 5.5007
Void F3()
Total is 234168
Total Milliseconds is 7.0009
By GodMoon
*/
【ProjectEuler】ProjectEuler_001
最新推荐文章于 2024-12-31 10:07:21 发布
