等差素数数列JAVA
题目描述
2,3,5,7,11,13,.... 是素数序列。 类似: 7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。
上边的数列公差为30,长度为 6
2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。这是数论领域一项惊人的成果!
有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:
长度为 10的等差素数列,其公差最小值是多少?
解题思路
1.首先先定义一个方法chose来判断这个数是否为素数
2.这个方法的核心代码是for循环,定义初值为num-1,最后一个值为2,然后通过if筛选是否除了本身和1外的数可以整除
3.在主方法中用双层嵌套for,第一层循环是设置初值,小于10000的数,从1开始,第二层for循环是设置公差,从1开始
4.双层for循环中定义k来作为素数数列的长度,用if判断没经过方法的数则取消,当k的长度达到10之后则可以输出最大的公差值j,最后用return停止方法
public class Main {public static void main(String[] args) {for(int i=1;i<10000;i++){for(int j=1;j<1000;j++){int k;for(k=0;k<=10;k++){if(!chose(i+j*k)){break;}}if(k==10){System.out.println(j);return;}}}}public static boolean chose(int num){for(int i=num-1;i>1;i--){if(num%i==0){return false;}}return true;}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
