27 Quadratic primes - Project Euler
来源:互联网 发布:js foreach遍历数组 编辑:程序博客网 时间:2024/05/20 10:20
package xxx.xxx.xxx;
import java.util.ArrayList;
import java.util.Arrays;
/*
* Euler discovered the remarkable quadratic formula:n² + n + 41
* It turns out that the formula will produce 40 primes for the consecutive values n = 0 to 39.
* However, when n = 40, 402 + 40 + 41 = 40(40 + 1) + 41 is divisible by 41, and certainly when n = 41, 41² + 41 + 41 is clearly divisible by 41.
* The incredible formula n² − 79n + 1601 was discovered, which produces 80 primes for the consecutive values n = 0 to 79.
* The product of the coefficients, −79 and 1601, is −126479.
* Considering quadratics of the form:
* n² + an + b, where |a| < 1000 and |b| < 1000
* 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.
*/
public class QuadraticPrimes1 {
private void compute(int aRange, int bRange) {
ArrayList<Integer> temp = new ArrayList<Integer>(Arrays.asList(0, 0, 0, 0));
for (int b = 1; b < bRange; b++) {
int aMin = Math.max(-aRange + 1, -b);
for (int a = aMin; a < aRange; a++) {
if (temp.get(0)<this.func(a, b).get(0)) {
temp = this.func(a, b);
}
}
}
System.out.println(temp);
}
private ArrayList<Integer> func(int a, int b) {
ArrayList<Integer> temp = new ArrayList<Integer>();
int n = 0;
label: while (n >= 0) {
/*
* int y = n*n+a*n+b; for(int i = 2; i<y; i++){ if(y%i==0){ break
* label; } }
*/
int y = n*n+a*n+b;
for (int i = 2; i < Math.abs(y); i ++) {
if (y <= 0 || y%i == 0) {
temp.add(n);
temp.add(a*b);
return temp;
}
}
n++;
}
return temp;
}
private void verify(int a, int b) {
int n = 0;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long startTime = System.currentTimeMillis();
QuadraticPrimes1 q = new QuadraticPrimes1();
q.compute(1000, 1000);
long endTime = System.currentTimeMillis();
System.out.println("execution time " + (endTime - startTime + "ms"));
}
}
import java.util.ArrayList;
import java.util.Arrays;
/*
* Euler discovered the remarkable quadratic formula:n² + n + 41
* It turns out that the formula will produce 40 primes for the consecutive values n = 0 to 39.
* However, when n = 40, 402 + 40 + 41 = 40(40 + 1) + 41 is divisible by 41, and certainly when n = 41, 41² + 41 + 41 is clearly divisible by 41.
* The incredible formula n² − 79n + 1601 was discovered, which produces 80 primes for the consecutive values n = 0 to 79.
* The product of the coefficients, −79 and 1601, is −126479.
* Considering quadratics of the form:
* n² + an + b, where |a| < 1000 and |b| < 1000
* 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.
*/
public class QuadraticPrimes1 {
private void compute(int aRange, int bRange) {
ArrayList<Integer> temp = new ArrayList<Integer>(Arrays.asList(0, 0, 0, 0));
for (int b = 1; b < bRange; b++) {
int aMin = Math.max(-aRange + 1, -b);
for (int a = aMin; a < aRange; a++) {
if (temp.get(0)<this.func(a, b).get(0)) {
temp = this.func(a, b);
}
}
}
System.out.println(temp);
}
private ArrayList<Integer> func(int a, int b) {
ArrayList<Integer> temp = new ArrayList<Integer>();
int n = 0;
label: while (n >= 0) {
/*
* int y = n*n+a*n+b; for(int i = 2; i<y; i++){ if(y%i==0){ break
* label; } }
*/
int y = n*n+a*n+b;
for (int i = 2; i < Math.abs(y); i ++) {
if (y <= 0 || y%i == 0) {
temp.add(n);
temp.add(a*b);
return temp;
}
}
n++;
}
return temp;
}
private void verify(int a, int b) {
int n = 0;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long startTime = System.currentTimeMillis();
QuadraticPrimes1 q = new QuadraticPrimes1();
q.compute(1000, 1000);
long endTime = System.currentTimeMillis();
System.out.println("execution time " + (endTime - startTime + "ms"));
}
}
0 0
- 27 Quadratic primes - Project Euler
- Project Euler:Problem 27 Quadratic primes
- PE 27 Quadratic primes
- Quadratic primes
- projecteuler---->problem=27----Quadratic primes
- Problem 27 Quadratic primes (暴力枚举)
- 【Project Euler】【Problem 10】Summation of primes
- project euler problem 10:Summation of primes
- Project Euler:Problem 35 Circular primes
- Project Euler:Problem 37 Truncatable primes
- Project Euler:Problem 47 Distinct primes factors
- Project Euler:Problem 58 Spiral primes
- 10 Summation of primes - Project Euler
- Project Euler 010 Summation of primes
- Project Euler Problem 10: Summation of primes
- Project Euler Problem 47 Distinct primes factors
- project euler 10 Summation of primes
- No_27:Quadratic primes
- LeetCode---Recover Binary Search Tree
- 路遥知马力
- Android ViewTreeObserver
- URL格式解析
- css 随内容自适应
- 27 Quadratic primes - Project Euler
- CSS3 圆形loading效果
- cocos2d js的一些方法
- MySQL添加外键
- Java泛型与反射
- IAR中优化等级对Kinetis FGPIO执行速度的影响
- 使用CoreImage实现素描滤镜
- generatorConfiguration配置文件及其详细解读
- 【枚举】tyvj 1387 迷你火车头