时间限制:1000ms 内存限制:128MB
给出 n 个整数序列,序列中所有的质数都在非质数前面,请你告诉我最后一个质数的下标(从 1 开始).
输入格式 第一行一个整数 n(1≤n≤10 6 ).
第二行 n 个数 a i (1≤a i ≤10 9 ).
数据保证一定有质数
输出格式 输出序列中最后一个质数的下标。
3 2 3 1
#include<bits/stdc++.h>
using namespace std;
long long sum=1,n;
long long a[1000010];
long long zs(int n){
for(int j=1;j<=n;j++){
for(int i=2;i<=sqrt(a[j]);i++){
if(a[i]<2){
break;
return 0;
}else if(a[j]%i==0){
return 0;
}
}
return 1;
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
if(zs(i)==1){
if(sum<i){
sum=i;
}
}
}
cout<<sum-1;
return 0;
}