Style improvement

This commit is contained in:
daniele 2024-02-20 19:46:29 +01:00
parent adca45e24f
commit 48503b8e27
Signed by: fuxino
GPG Key ID: 981A2B2A3BBF5514
16 changed files with 72 additions and 64 deletions

@ -2,15 +2,15 @@
* relatively prime to n. For example, as 1, 2, 4, 5, 7, and 8, are all less than nine and relatively prime to nine, φ(9)=6.
*
* n Relatively Prime φ(n) n/φ(n)
* 2 1 1 2
* 3 1,2 2 1.5
* 4 1,3 2 2
* 5 1,2,3,4 4 1.25
* 6 1,5 2 3
* 7 1,2,3,4,5,6 6 1.1666...
* 8 1,3,5,7 4 2
* 9 1,2,4,5,7,8 6 1.5
* 10 1,3,7,9 4 2.5
* 2 1 1 2
* 3 1,2 2 1.5
* 4 1,3 2 2
* 5 1,2,3,4 4 1.25
* 6 1,5 2 3
* 7 1,2,3,4,5,6 6 1.1666...
* 8 1,3,5,7 4 2
* 9 1,2,4,5,7,8 6 1.5
* 10 1,3,7,9 4 2.5
*
* It can be seen that n=6 produces a maximum n/φ(n) for n 10.
*
@ -26,41 +26,41 @@
int main(int argc, char **argv)
{
int i, res = 1;
int i, res = 1;
double elapsed;
struct timespec start, end;
struct timespec start, end;
clock_gettime(CLOCK_MONOTONIC, &start);
clock_gettime(CLOCK_MONOTONIC, &start);
i = 1;
i = 1;
/* Using Euler's formula, phi(n)=n*prod(1-1/p), where p are the distinct
* primes that divide n. So n/phi(n)=1/prod(1-1/p). To find the maximum
* value of this function, the denominator must be minimized. This happens
* when n has the most distinct small prime factor, i.e. to find the solution
* we need to multiply the smallest consecutive primes until the result is
* larger than 1000000.*/
while(res < N)
{
i++;
if(is_prime(i))
{
res *= i;
}
}
/* Using Euler's formula, phi(n)=n*prod(1-1/p), where p are the distinct
* primes that divide n. So n/phi(n)=1/prod(1-1/p). To find the maximum
* value of this function, the denominator must be minimized. This happens
* when n has the most distinct small prime factor, i.e. to find the solution
* we need to multiply the smallest consecutive primes until the result is
* larger than 1000000.*/
while(res < N)
{
i++;
if(is_prime(i))
{
res *= i;
}
}
/* We need the previous value, because we want i<1000000.*/
res /= i;
/* We need the previous value, because we want i<1000000.*/
res /= i;
clock_gettime(CLOCK_MONOTONIC, &end);
clock_gettime(CLOCK_MONOTONIC, &end);
elapsed = (end.tv_sec-start.tv_sec) + (double)(end.tv_nsec - start.tv_nsec) / 1000000000;
elapsed = (end.tv_sec-start.tv_sec) + (double)(end.tv_nsec - start.tv_nsec) / 1000000000;
printf("Project Euler, Problem 69\n");
printf("Project Euler, Problem 69\n");
printf("Answer: %d\n", res);
printf("Elapsed time: %.9lf seconds\n", elapsed);
printf("Elapsed time: %.9lf seconds\n", elapsed);
return 0;
}

@ -27,7 +27,7 @@ def p022():
sum_ = 0
i = 1
# Calculate the score of each name an multiply by its position.
# Calculate the score of each name an multiply by its position.
for name in names:
l = len(name)
score = 0

@ -17,7 +17,8 @@
# where |n| is the modulus/absolute value of n
# e.g. |11|=11 and |4|=4
#
# Find the product of the coefficients, a and b, for the quadratic expression that produces the maximum number of primes for consecutive values of n, starting with n=0.
# Find the product of the coefficients, a and b, for the quadratic expression that produces the maximum number of primes for consecutive values of n,
# starting with n=0.
from projecteuler import is_prime, timing

@ -2,8 +2,8 @@
# Triangle, pentagonal, and hexagonal numbers are generated by the following formulae:
#
# Triangle T_n=n(n+1)/2 1, 3, 6, 10, 15, ...
# Pentagonal P_n=n(3n1)/2 1, 5, 12, 22, 35, ...
# Triangle T_n=n(n+1)/2 1, 3, 6, 10, 15, ...
# Pentagonal P_n=n(3n1)/2 1, 5, 12, 22, 35, ...
# Hexagonal H_n=n(2n1) 1, 6, 15, 28, 45, ...
#
# It can be verified that T_285 = P_165 = H_143 = 40755.

@ -15,7 +15,7 @@
# The cards are valued in the order:
# 2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King, Ace.
#
# If two players have the same ranked hands then the rank made up of the highest value wins; for example, a pair of eights beats a pair of fives
# If two players have the same ranked hands then the rank made up of the highest value wins; for example, a pair of eights beats a pair of fives
# (see example 1 below). But if two ranks tie, for example, both players have a pair of queens, then highest cards in each hand are compared
# (see example 4 below); if the highest cards tie then the next highest cards are compared, and so on.
#

@ -11,8 +11,8 @@
# That is, 349 took three iterations to arrive at a palindrome.
#
# Although no one has proved it yet, it is thought that some numbers, like 196, never produce a palindrome. A number that never forms a palindrome
# through the reverse and add process is called a Lychrel number. Due to the theoretical nature of these numbers, and for the purpose of this problem,
# we shall assume that a number is Lychrel until proven otherwise. In addition you are given that for every number below ten-thousand, it will either
# through the reverse and add process is called a Lychrel number. Due to the theoretical nature of these numbers, and for the purpose of this problem,
# we shall assume that a number is Lychrel until proven otherwise. In addition you are given that for every number below ten-thousand, it will either
# (i) become a palindrome in less than fifty iterations, or,
# (ii) no one, with all the computing power that exists, has managed so far to map it to a palindrome. In fact, 10677 is the first number to be shown
# to require over fifty iterations before producing a palindrome: 4668731596684224866951378664 (53 iterations, 28-digits).

@ -1,6 +1,6 @@
#!/usr/bin/python
# The cube, 41063625 (345^3), can be permuted to produce two other cubes: 56623104 (384^3) and 66430125 (405^3).
# The cube, 41063625 (345^3), can be permuted to produce two other cubes: 56623104 (384^3) and 66430125 (405^3).
# In fact, 41063625 is the smallest cube which has exactly three permutations of its digits which are also cube.
#
# Find the smallest cube for which exactly five permutations of its digits are cube.

@ -3,15 +3,15 @@
# Euler's Totient function, φ(n) [sometimes called the phi function], is used to determine the number of numbers less than n which are
# relatively prime to n. For example, as 1, 2, 4, 5, 7, and 8, are all less than nine and relatively prime to nine, φ(9)=6.
#
# n Relatively Prime φ(n) n/φ(n)
# 2 1 1 2
# 3 1,2 2 1.5
# 4 1,3 2 2
# 5 1,2,3,4 4 1.25
# 6 1,5 2 3
# 7 1,2,3,4,5,6 6 1.1666...
# 8 1,3,5,7 4 2
# 9 1,2,4,5,7,8 6 1.5
# n Relatively Prime φ(n) n/φ(n)
# 2 1 1 2
# 3 1,2 2 1.5
# 4 1,3 2 2
# 5 1,2,3,4 4 1.25
# 6 1,5 2 3
# 7 1,2,3,4,5,6 6 1.1666...
# 8 1,3,5,7 4 2
# 9 1,2,4,5,7,8 6 1.5
# 10 1,3,7,9 4 2.5
#
# It can be seen that n=6 produces a maximum n/φ(n) for n ≤ 10.

@ -2,7 +2,7 @@
# In the 5 by 5 matrix below, the minimal path sum from the top left to the bottom right, by only moving to the right and down,
# is indicated in bold red and is equal to 2427.
#
#
# *131* 673 234 103 18
# *201* *96* *342* 965 150
# 630 803 *746* *422* 111

@ -11,7 +11,7 @@
# *201* *96* *342* 965 150
# 630 803 746 422 111
# 537 699 497 121 956
# 805 732 524 37 331
# 805 732 524 37 331
#
# Find the minimal path sum, in matrix.txt, a 31K text file containing a 80 by 80 matrix, from the left column to the right column.

@ -4,7 +4,7 @@
#
# In the 5 by 5 matrix below, the minimal path sum from the top left to the bottom right, by moving left, right, up, and down,
# is indicated in bold red and is equal to 2297.
#
#
# *131* 673 *234* *103* *18*
# *201* *96* *342* 965 *150*
# 630 803 746 *422* *111*

@ -1,10 +1,12 @@
#!/usr/bin/env python3
# A natural number, N, hat can be written as the sum and product of a given set of at least two natural numbers, {a1,a2,...,ak} is called a product sum number: N = a1 + a2 + ... + ak = a1 x a2 x ... ak.
# A natural number, N, hat can be written as the sum and product of a given set of at least two natural numbers, {a1,a2,...,ak} is called a product sum number:
# N = a1 + a2 + ... + ak = a1 x a2 x ... ak.
#
# For example, 6 = 1 + 2 + 3 = 1 x 2 x 3
#
# For a given set of size, k, we shall call the smallest N with this property a minimal product-sum number. The minimal product-sum numbers for sets of size, k = 2,3,4,5, and 6 are as follows.
# For a given set of size, k, we shall call the smallest N with this property a minimal product-sum number. The minimal product-sum numbers for sets of size,
# k = 2,3,4,5, and 6 are as follows.
#
# k = 2: 4 = 2 x 2 = 2 + 2
# k = 3: 6 = 1 x 2 x 3 = 1 + 2 + 3

@ -1,22 +1,26 @@
#!/usr/bin/env python3
# Each of the six faces on a cube has a different digit (0 to 9) written on it; the same is done to a second cube. By placing the two cubes side-by-side in different positions we can form a variety of 2-digit numbers.
# Each of the six faces on a cube has a different digit (0 to 9) written on it; the same is done to a second cube. By placing the two cubes side-by-side
# in different positions we can form a variety of 2-digit numbers.
#
# For example, the square number 64 could be formed:
# |6||4|
#
# In fact, by carefully choosing the digits on both cubes it is possible to display all of the square numbers below one-hundred: 01, 04, 09, 16, 25, 36, 49, 64, and 81.
# In fact, by carefully choosing the digits on both cubes it is possible to display all of the square numbers below one-hundred:
# 01, 04, 09, 16, 25, 36, 49, 64, and 81.
#
# For example, one way this can be achieved is by placing {0,5,6,7,8,9} on one cube and {1,2,3,4,8,9} on the other cube.
#
# However, for this problem we shall allow the 6 or 9 to be turned upside-down so that an arrangement like {0,5,6,7,8,9} and {1,2,3,4,6,7} allows for all nine square numbers to be displayed; otherwise it would be impossible to obtain 09.
# However, for this problem we shall allow the 6 or 9 to be turned upside-down so that an arrangement like {0,5,6,7,8,9} and {1,2,3,4,6,7} allows
# for all nine square numbers to be displayed; otherwise it would be impossible to obtain 09.
#
# In determining a distinct arrangement we are interested in the digits on each cube, not the order.
#
# {1,2,3,4,5,6} is equivalent to {3,6,4,1,2,5}
# {1,2,3,4,5,6} is distinct from {1,2,3,4,5,9}
#
# But because we are allowing 6 and 9 to be reversed, the two distinct sets in the last example both represent the extended set {1,2,3,4,5,6,9} for the purpose of forming 2-digit numbers.
# But because we are allowing 6 and 9 to be reversed, the two distinct sets in the last example both represent the extended set {1,2,3,4,5,6,9}
# for the purpose of forming 2-digit numbers.
#
# How many distinct arrangements of the two cubes allow for all of the square numbers to be displayed?

@ -2,7 +2,8 @@
# The points P(x1,y1) and Q(x2,y2) are plotted at integer co-ordinates and are joined to the origin, O(0,0), to form ΔOPQ.
#
# There are exactly fourteen triangles containing a right angle that can be formed when each co-ordinate lies between 0 and 2 inclusive; that is, 0<=x1,y1,x2,y2<=2.
# There are exactly fourteen triangles containing a right angle that can be formed when each co-ordinate lies between 0 and 2 inclusive;
# that is, 0<=x1,y1,x2,y2<=2.
#
# Given that 0<=x1,y1,x2,y2<=50, how many right triangles can be formed?

@ -1,9 +1,9 @@
# Comparing two numbers written in index form like 2^11 and 3^7 is not difficult, as any calculator would confirm that
# Comparing two numbers written in index form like 2^11 and 3^7 is not difficult, as any calculator would confirm that
# 2^11 = 2048 < 3^7 = 2187.
#
# However, confirming that 632382^518061 > 519432^525806 would be much more difficult, as both numbers contain over three million digits.
#
# Using base_exp.txt, a 22K text file containing one thousand lines with a base/exponent pair on each line,
# Using base_exp.txt, a 22K text file containing one thousand lines with a base/exponent pair on each line,
# determine which line number has the greatest numerical value.
#
# NOTE: The first two lines in the file represent the numbers in the example given above.*/

@ -294,7 +294,7 @@ def is_semiprime(n, primes):
return False, -1, -1
# Check if n is semiprime and one of the factors is 3.
elif n % 3 == 0:
if n % 3 == 0:
if primes[n//3] == 1:
p = 3
q = n // 3