##
**Problem:**

You are given the following information, but you may prefer to do some research for yourself.

* 1 Jan 1900 was a Monday.

* Thirty days has September,

April, June and November.

All the rest have thirty-one,

Saving February alone,

Which has twenty-eight, rain or shine.

And on leap years, twenty-nine.

* A leap year occurs on any year evenly divisible by 4, but not on a century unless it is divisible by 400.

How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)?

##
**Solution:**

171

##
**Code:**

The solution may include methods that will be found here: Library.java .

The solution may include methods that will be found here: Library.java .

public interface EulerSolution{ public String run(); }

/* * Solution to Project Euler problem 19 * By Nayuki Minase * * http://nayuki.eigenstate.org/page/project-euler-solutions * https://github.com/nayuki/Project-Euler-solutions */ public final class p019 implements EulerSolution { public static void main(String[] args) { System.out.println(new p019().run()); } public String run() { int count = 0; for (int y = 1901; y <= 2000; y++) { for (int m = 1; m <= 12; m++) { if (dayOfWeek(y, m, 1) == 0) // Sunday count++; } } return Integer.toString(count); } private static int dayOfWeek(int year, int month, int day) { long m = mod((long)month - 3, 4800); long y = mod(year + m / 12, 400); m %= 12; return (int)((y + y/4 - y/100 + (13 * m + 2) / 5 + day + 2) % 7); } private static long mod(long x, long y) { x %= y; if (y > 0 && x < 0 || y < 0 && x > 0) x += y; return x; } }

## No comments :

## Post a Comment