package margusmartseppcode.From_1_to_9;
public class Problem_9 {
static long getPythSum(long nr) {
double a, b, c, sqn = Math.sqrt(nr);
for (int i = 1; i < sqn; i += 2)
for (int j = 2; j < sqn; j += 2) {
a = Math.abs(j * j - i * i);
b = 2 * i * j;
c = i * i + j * j;
if ((a + b + c) == nr)
return (long) (a * b * c);
}
return -1;
}
public static void main(String[] args) {
System.out.println(getPythSum(1000));
}
}
Showing posts with label Euler Problem 1-9. Show all posts
Showing posts with label Euler Problem 1-9. Show all posts
Tuesday, September 8, 2009
Euler Problem 9 solution
Time (s): ~0.001
Euler Problem 8 solution
Time (s): ~0.001
package margusmartseppcode.From_1_to_9;
public class Problem_8 {
public static void main(String[] args) {
char[] nr = ("7316717653133062491922511967442657474235534919493"
+ "496983520312774506326239578318016984801869478851843"
+ "858615607891129494954595017379583319528532088055111"
+ "254069874715852386305071569329096329522744304355766"
+ "896648950445244523161731856403098711121722383113622"
+ "298934233803081353362766142828064444866452387493035"
+ "890729629049156044077239071381051585930796086670172"
+ "427121883998797908792274921901699720888093776657273"
+ "330010533678812202354218097512545405947522435258490"
+ "771167055601360483958644670632441572215539753697817"
+ "977846174064955149290862569321978468622482839722413"
+ "756570560574902614079729686524145351004748216637048"
+ "440319989000889524345065854122758866688116427171479"
+ "924442928230863465674813919123162824586178664583591"
+ "245665294765456828489128831426076900422421902267105"
+ "562632111110937054421750694165896040807198403850962"
+ "455444362981230987879927244284909188845801561660979"
+ "191338754992005240636899125607176060588611646710940"
+ "507754100225698315520005593572972571636269561882670"
+ "428252483600823257530420752963450").toCharArray();
int tmp = 0, max = 0;
for (int i = 4; i < nr.length; i++, tmp = 1) {
for (int j = -4; j <= 0; j++)
tmp *= (nr[i + j] - '0');
if (tmp > max)
max = tmp;
}
System.out.println(max);
}
}
Euler Problem 7 solution
Time (s): ~0.011
package margusmartseppcode.From_1_to_9;
import java.util.BitSet;
public class Problem_7 {
static long getSoExnt(int max, int nr) {
if (max < 1 || nr < 1 || max < nr)
return -1;
if (nr < 4)
return (nr == 1 ? 2 : (nr == 2 ? 3 : 5));
BitSet sieve = new BitSet(max / 2);
for (int i = 5, f = 1, c = 2; i <= max; i += 3 - f, f = -f)
if (sieve.get(i >> 1) == false) {
int add = i << 1;
for (int j = i + add; j < max; j += add)
sieve.set(j >> 1, true);
if (++c >= nr)
return i;
}
return -1;
}
public static void main(String[] args) {
System.out.println(getSoExnt(120000, 10001));
}
}
Euler Problem 6 solution
Time (s): ~0.001
package margusmartseppcode.From_1_to_9;
public class Problem_6 {
public static void main(String[] args) {
int size = 100;
long qos = (int) Math.pow(size * (size + 1) / 2, 2);
long soq = size * (size + 1) * (2 * size + 1) / 6;
System.out.println(qos - soq);
}
}
Euler Problem 5 solution
Time (s): ~0.001
package margusmartseppcode.From_1_to_9;
public class Problem_5 {
static long gcd(long a, long b) {
if (b == 0)
return Math.abs(a);
return gcd(b, a % b);
}
static long lcm(long a, long b) {
return (a * b) / gcd(a, b);
}
public static void main(String[] args) {
long result = 1;
for (long i = 2; i < 21; i++)
result = lcm(result, i);
System.out.println(result);
}
}
Labels:
Euclid algorithm,
Euler Problem 1-9,
gcm,
lcm
Euler Problem 4 solution
Time (s): ~0.018
package margusmartseppcode.From_1_to_9;
public class Problem_4 {
static boolean isPalindrome(String p) {
return p.equals(new StringBuilder(p).reverse().toString());
}
public static void main(String[] args) {
int limit = 999, max = 0;
for (int i = limit; i > 101; i -= 2)
for (int j = i; j > 101 && i * j > max; j -= 2)
if (isPalindrome("" + (i * j)))
max = i * j;
System.out.println(max);
}
}
Euler Problem 3 solution
Time (s): ~0.001
package margusmartseppcode.From_1_to_9;
public class Problem_3 {
static long lpf(long nr) {
long max = 0;
for (long i = 2; i <= nr / i; i++)
while (nr % i == 0) {
max = i;
nr = nr / i;
}
return nr > 1 ? nr : max;
}
public static void main(String[] args) {
System.out.println(lpf(600851475143L));
}
}
Euler Problem 2 solution
Time (s): ~0.001
package margusmartseppcode.From_1_to_9;
public class Problem_2 {
static final double gold_r = Math.pow((1 + Math.sqrt(5)) / 2, 3);
public static void main(String[] args) {
long size = 4000000, sum = 0;
double f = 2;
for (; f < size; f = Math.round(f * gold_r))
sum += f;
System.out.println(sum);
}
}
Labels:
Euler Problem 1-9,
Fibonacci numbers,
golden ratio
Euler Problem 1 solution
Time (s): ~0.001
package margusmartseppcode.From_1_to_9;
public class Problem_1 {
// Arithmetic progression
static int AP(int nr) {
return nr * (nr + 1) / 2;
}
static int nAP(int nr, int multible) {
return multible * nr * (nr + 1) / 2;
}
public static void main(String[] args) {
int size = 999;
int result = nAP(size / 3, 3) + nAP(size / 5, 5)
- nAP(size / 15, 15);
System.out.println(result);
}
}
Subscribe to:
Posts (Atom)