Project Euler > Problem 121 > Disc game prize fund (Java Solution)


A bag contains one red disc and one blue disc. In a game of chance a player takes a disc at random and its colour is noted. After each turn the disc is returned to the bag, an extra red disc is added, and another disc is taken at random.

The player pays £1 to play and wins if they have taken more blue discs than red discs at the end of the game.

If the game is played for four turns, the probability of a player winning is exactly 11/120, and so the maximum prize fund the banker should allocate for winning in this game would be £10 before they would expect to incur a loss. Note that any payout will be a whole number of pounds and also includes the original £1 paid to play the game, so in the example given the player actually wins £9.

Find the maximum prize fund that should be allocated to a single game in which fifteen turns are played.



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

public interface EulerSolution{

public String run();

* Solution to Project Euler problem 21
* By Nayuki Minase

public final class p021 implements EulerSolution {

public static void main(String[] args) {
System.out.println(new p021().run());

public String run() {
int sum = 0;
for (int i = 1; i < 10000; i++) {
if (isAmicable(i))
sum += i;
return Integer.toString(sum);

private static boolean isAmicable(int n) {
int m = divisorSum(n);
return m != n && divisorSum(m) == n;

private static int divisorSum(int n) {
int sum = 0;
for (int i = 1; i < n; i++) {
if (n % i == 0)
sum += i;
return sum;


No comments :

Post a Comment

Follow Me

If you like our content, feel free to follow me to stay updated.


Enter your email address:

We hate spam as much as you do.

Upload Material

Got an exam, project, tutorial video, exercise, solutions, unsolved problem, question, solution manual? We are open to any coding material. Why not upload?


Copyright © 2012 - 2014 Java Problems  --  About  --  Attribution  --  Privacy Policy  --  Terms of Use  --  Contact