1 条题解
-
0
C++ :
#include <bits/stdc++.h> using namespace std; bool sushu(int n){ int i; if(n <= 1) return false; for(i = 2;i <= sqrt(n);i++){ if(n % i == 0){ return false; } } return true; } int main(){ int n,i,c = 0,ma = 0; cin>>n; for(i = 2;i <= n;i++){ if(sushu(i) == false){ c++; }else{ if(c > ma){ ma = c; } c = 0; } if(i == n) ma = max(c,ma); } cout<<ma; }
Java :
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(); } }
- 1
信息
- ID
- 2500
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者