import java.util.Arrays; import java.util.Scanner; public class Main { //素数表 static boolean a[] = new boolean[1000001]; //记录连续最大数 static int b[] = new int[1000001]; public static void main(String[] args){ Scanner sc = new Scanner(System.in); //将数组元素都设为true Arrays.fill(a, true); int i,j,n=sc.nextInt(); //1 的情况定性 a[1] = false; b[1] = 1; //从2开始素数表 for(i=2;i<=n;i++) { for(j=2;j<=Math.sqrt(i);j++) { if(i%j==0) { a[i] = false; break; } } //a[i]要么false 要么true if(a[i]==false) { if(a[i-1]==false) b[i] = b[i-1] + 1; else b[i] = 1; } } int mx = Integer.MIN_VALUE; for(i=1;i<=n;i++) { mx = Math.max(b[i],mx); } System.out.println(mx); sc.close(); } } /************************************************************** Problem: 1587 User: admin Language: Java Result: Accepted Time:4320 ms Memory:45456 kb ****************************************************************/