题目标题:
在给定的区间范围内找出所有素数能构成的最大的等差数列(即等差数列包含的素数个数最多)。
举例:
在区间[0, 10]中,素数构成的最大等差数列为3,5,7
思路:首先找出所有的素数,然后求得最大的素数和最小的素数之差i(即为最大的公差),将公差从1到i依次循环,在求得的素数列表中找到最长的等差序列。
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int start=scanner.nextInt(); int end=scanner.nextInt(); int[] result=new int[end-start+1]; int[] temp=new int[end-start+1]; boolean isPrime[]=isPrime(start,end); List<Integer> list=new ArrayList<Integer>(); for(int i=start;i<=end;i++){ int k=i-start; if(isPrime[k]){ list.add(i); } } int sum; int last; int max=0; int size=list.size(); if(size==1){ System.out.println(list.get(0
华为oj--寻找等差数列
最新推荐文章于 2022-02-08 17:14:59 发布
该博客探讨了如何在指定区间内找到由素数构成的最大等差数列。通过首先找出所有素数,然后计算最大素数与最小素数之间的差值作为可能的公差,逐一检查这些公差来确定最长的等差序列。
摘要由CSDN通过智能技术生成