java - Project Euler 连续素数 Java
问题描述
我写了一个程序,它不适用于项目 Euler 问题 50,所以如果你还没有解决这个问题,如果你想解决它,可能就别看了。
问题链接在这里:https ://projecteuler.net/problem=50
剧透在下面回答
我的答案是 997661,比真正的解决方案多了十个
我的程序似乎对我有用,但我缺乏经验,希望更有经验的程序员能找出问题所在。
import java.util.ArrayList;
public class ConsecutivePrimeSum {
public static void main(String[] args) {
ArrayList<Integer> primes = new ArrayList<Integer>();
for (int i = 2; i < 1000000; i++) {
if (isPrime(i)) {
primes.add(i);
}
}
int total = 0;
int counter = 0;
while (total + primes.get(counter) < 1000000) {
total += primes.get(counter);
System.out.println(primes.get(counter));
counter += 1;
}
System.out.println(total + " " + counter);
}
public static boolean isPrime(Integer number) {
int sqrt = (int) Math.sqrt(number) + 1;
for (int i = 2; i < sqrt; i++) {
if (number % i == 0 && number != i) {
return false;
}
}
return true;
}
}
解决方案
推荐阅读
- powerbi - 管理嵌入代码 - 链接不可用
- mysql - 无法在mysql中排序列
- javascript - React-router-dom 重定向问题
- javascript - 角路由器链接并单击
- python - asyncio 中的循环时间是否与 time.monotonic 相同?
- sql - 如何使用 SQL 查询根据条件获取下一条记录?
- reactjs - 如何在 ReactJS、JSX 中使用工具提示,而不使用 npm-module 或 react-bootstrap?
- angular - 循环返回新 FormGroup 的函数数组时未生成新的 FormGroup
- java - Java 游戏一颗子弹杀死了屏幕上的所有物体
- assembly - 这个 MIPS 汇编代码对应什么?