Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
390267a172
commit
8161004837
BIN
archives/9/current
Executable file
BIN
archives/9/current
Executable file
Binary file not shown.
31
archives/9/src/main.c
Normal file
31
archives/9/src/main.c
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
A Pythagorean triplet is a set of three natural numbers, a < b < c, for which,
|
||||||
|
|
||||||
|
a2 + b2 = c2
|
||||||
|
For example, 32 + 42 = 9 + 16 = 25 = 52.
|
||||||
|
|
||||||
|
There exists exactly one Pythagorean triplet for which a + b + c = 1000.
|
||||||
|
Find the product abc.
|
||||||
|
|
||||||
|
https://projecteuler.net/problem=9
|
||||||
|
*/
|
||||||
|
int main(int argc,char**argv) {
|
||||||
|
int a=1;
|
||||||
|
int b=2;
|
||||||
|
int c=997;
|
||||||
|
int sum=0;
|
||||||
|
for (b=2;b<c;b++) {
|
||||||
|
for (a=1;a<b;a++) {
|
||||||
|
int tempC=1000-a-b;
|
||||||
|
if (a*a+b*b==tempC*tempC) {
|
||||||
|
printf("Pythagorean triplet of %d^2+%d^2=%d^2 works for %d+%d+%d=1000\n",a,b,tempC,a,b,tempC);
|
||||||
|
printf("Product is %d",a*b*tempC);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
7
archives/9/src/utils.h
Normal file
7
archives/9/src/utils.h
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#define true 1
|
||||||
|
#define false 0
|
||||||
|
#define boolean char
|
||||||
|
struct String{
|
||||||
|
int length;
|
||||||
|
char*str;
|
||||||
|
};
|
72
src/main.c
72
src/main.c
@ -2,66 +2,30 @@
|
|||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The four adjacent digits in the 1000-digit number that have the greatest product are 9 × 9 × 8 × 9 = 5832.
|
A Pythagorean triplet is a set of three natural numbers, a < b < c, for which,
|
||||||
|
|
||||||
73167176531330624919225119674426574742355349194934
|
a2 + b2 = c2
|
||||||
96983520312774506326239578318016984801869478851843
|
For example, 32 + 42 = 9 + 16 = 25 = 52.
|
||||||
85861560789112949495459501737958331952853208805511
|
|
||||||
12540698747158523863050715693290963295227443043557
|
|
||||||
66896648950445244523161731856403098711121722383113
|
|
||||||
62229893423380308135336276614282806444486645238749
|
|
||||||
30358907296290491560440772390713810515859307960866
|
|
||||||
70172427121883998797908792274921901699720888093776
|
|
||||||
65727333001053367881220235421809751254540594752243
|
|
||||||
52584907711670556013604839586446706324415722155397
|
|
||||||
53697817977846174064955149290862569321978468622482
|
|
||||||
83972241375657056057490261407972968652414535100474
|
|
||||||
82166370484403199890008895243450658541227588666881
|
|
||||||
16427171479924442928230863465674813919123162824586
|
|
||||||
17866458359124566529476545682848912883142607690042
|
|
||||||
24219022671055626321111109370544217506941658960408
|
|
||||||
07198403850962455444362981230987879927244284909188
|
|
||||||
84580156166097919133875499200524063689912560717606
|
|
||||||
05886116467109405077541002256983155200055935729725
|
|
||||||
71636269561882670428252483600823257530420752963450
|
|
||||||
|
|
||||||
Find the thirteen adjacent digits in the 1000-digit number that have the greatest product. What is the value of this product?
|
There exists exactly one Pythagorean triplet for which a + b + c = 1000.
|
||||||
|
Find the product abc.
|
||||||
|
|
||||||
https://projecteuler.net/problem=8
|
https://projecteuler.net/problem=9
|
||||||
*/
|
*/
|
||||||
int main(int argc,char**argv) {
|
int main(int argc,char**argv) {
|
||||||
char number[]={
|
int a=1;
|
||||||
'7','3','1','6','7','1','7','6','5','3','1','3','3','0','6','2','4','9','1','9','2','2','5','1','1','9','6','7','4','4','2','6','5','7','4','7','4','2','3','5','5','3','4','9','1','9','4','9','3','4',
|
int b=2;
|
||||||
'9','6','9','8','3','5','2','0','3','1','2','7','7','4','5','0','6','3','2','6','2','3','9','5','7','8','3','1','8','0','1','6','9','8','4','8','0','1','8','6','9','4','7','8','8','5','1','8','4','3',
|
int c=997;
|
||||||
'8','5','8','6','1','5','6','0','7','8','9','1','1','2','9','4','9','4','9','5','4','5','9','5','0','1','7','3','7','9','5','8','3','3','1','9','5','2','8','5','3','2','0','8','8','0','5','5','1','1',
|
int sum=0;
|
||||||
'1','2','5','4','0','6','9','8','7','4','7','1','5','8','5','2','3','8','6','3','0','5','0','7','1','5','6','9','3','2','9','0','9','6','3','2','9','5','2','2','7','4','4','3','0','4','3','5','5','7',
|
for (b=2;b<c;b++) {
|
||||||
'6','6','8','9','6','6','4','8','9','5','0','4','4','5','2','4','4','5','2','3','1','6','1','7','3','1','8','5','6','4','0','3','0','9','8','7','1','1','1','2','1','7','2','2','3','8','3','1','1','3',
|
for (a=1;a<b;a++) {
|
||||||
'6','2','2','2','9','8','9','3','4','2','3','3','8','0','3','0','8','1','3','5','3','3','6','2','7','6','6','1','4','2','8','2','8','0','6','4','4','4','4','8','6','6','4','5','2','3','8','7','4','9',
|
int tempC=1000-a-b;
|
||||||
'3','0','3','5','8','9','0','7','2','9','6','2','9','0','4','9','1','5','6','0','4','4','0','7','7','2','3','9','0','7','1','3','8','1','0','5','1','5','8','5','9','3','0','7','9','6','0','8','6','6',
|
if (a*a+b*b==tempC*tempC) {
|
||||||
'7','0','1','7','2','4','2','7','1','2','1','8','8','3','9','9','8','7','9','7','9','0','8','7','9','2','2','7','4','9','2','1','9','0','1','6','9','9','7','2','0','8','8','8','0','9','3','7','7','6',
|
printf("Pythagorean triplet of %d^2+%d^2=%d^2 works for %d+%d+%d=1000\n",a,b,tempC,a,b,tempC);
|
||||||
'6','5','7','2','7','3','3','3','0','0','1','0','5','3','3','6','7','8','8','1','2','2','0','2','3','5','4','2','1','8','0','9','7','5','1','2','5','4','5','4','0','5','9','4','7','5','2','2','4','3',
|
printf("Product is %d",a*b*tempC);
|
||||||
'5','2','5','8','4','9','0','7','7','1','1','6','7','0','5','5','6','0','1','3','6','0','4','8','3','9','5','8','6','4','4','6','7','0','6','3','2','4','4','1','5','7','2','2','1','5','5','3','9','7',
|
return 0;
|
||||||
'5','3','6','9','7','8','1','7','9','7','7','8','4','6','1','7','4','0','6','4','9','5','5','1','4','9','2','9','0','8','6','2','5','6','9','3','2','1','9','7','8','4','6','8','6','2','2','4','8','2',
|
}
|
||||||
'8','3','9','7','2','2','4','1','3','7','5','6','5','7','0','5','6','0','5','7','4','9','0','2','6','1','4','0','7','9','7','2','9','6','8','6','5','2','4','1','4','5','3','5','1','0','0','4','7','4',
|
|
||||||
'8','2','1','6','6','3','7','0','4','8','4','4','0','3','1','9','9','8','9','0','0','0','8','8','9','5','2','4','3','4','5','0','6','5','8','5','4','1','2','2','7','5','8','8','6','6','6','8','8','1',
|
|
||||||
'1','6','4','2','7','1','7','1','4','7','9','9','2','4','4','4','2','9','2','8','2','3','0','8','6','3','4','6','5','6','7','4','8','1','3','9','1','9','1','2','3','1','6','2','8','2','4','5','8','6',
|
|
||||||
'1','7','8','6','6','4','5','8','3','5','9','1','2','4','5','6','6','5','2','9','4','7','6','5','4','5','6','8','2','8','4','8','9','1','2','8','8','3','1','4','2','6','0','7','6','9','0','0','4','2',
|
|
||||||
'2','4','2','1','9','0','2','2','6','7','1','0','5','5','6','2','6','3','2','1','1','1','1','1','0','9','3','7','0','5','4','4','2','1','7','5','0','6','9','4','1','6','5','8','9','6','0','4','0','8',
|
|
||||||
'0','7','1','9','8','4','0','3','8','5','0','9','6','2','4','5','5','4','4','4','3','6','2','9','8','1','2','3','0','9','8','7','8','7','9','9','2','7','2','4','4','2','8','4','9','0','9','1','8','8',
|
|
||||||
'8','4','5','8','0','1','5','6','1','6','6','0','9','7','9','1','9','1','3','3','8','7','5','4','9','9','2','0','0','5','2','4','0','6','3','6','8','9','9','1','2','5','6','0','7','1','7','6','0','6',
|
|
||||||
'0','5','8','8','6','1','1','6','4','6','7','1','0','9','4','0','5','0','7','7','5','4','1','0','0','2','2','5','6','9','8','3','1','5','5','2','0','0','0','5','5','9','3','5','7','2','9','7','2','5',
|
|
||||||
'7','1','6','3','6','2','6','9','5','6','1','8','8','2','6','7','0','4','2','8','2','5','2','4','8','3','6','0','0','8','2','3','2','5','7','5','3','0','4','2','0','7','5','2','9','6','3','4','5','0',};
|
|
||||||
long largestProduct=0;
|
|
||||||
for (int i=0;i<1000-13;i++) {
|
|
||||||
long product=1;
|
|
||||||
for (int j=0;j<13;j++) {
|
|
||||||
product*=number[i+j]-'0';
|
|
||||||
}
|
|
||||||
if (product>largestProduct) {
|
|
||||||
largestProduct=product;
|
|
||||||
printf("Largest product set to %ld\n",largestProduct);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("\n%ld",largestProduct);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user