文章
2
粉丝
277
获赞
5
访问
5.7k
没用到什么stl函数,按照小白的思维来做的。
#include <bits/stdc++.h>
using namespace std;
bool he (int a){ //判断是否为合数
int flag=0;
for(int i=2;i<=sqrt(a);i++){
if(a%i==0){
flag = 1;
return true;
}
}
if(flag==0){
return false;
}
}
int main(){
int a,b;
int s[10005]={0},c[10005]={0};
cin>>a>>b;
for(int i=a;i<=b;i++){ //将合数存入s数组中
if(he(i)==true){
s[i]=i;
}
}
for(int i=a;i<=b;i++){ //将连续的合数标记为1,并存入c数组中
if((s[i+1]-s[i])==1){
c[i]=1;
c[i+1]=1;
}
}
int x=0;
for(int i=a;i<=b+1;i++){
if(c[i]==1){
x++;
}else{
c[i-1]=x; //统计每个连续合数段的长度,将长度存入c数组中
x=0;
}
}
int maxx=0,kk;
for(int i=a;i<=b;i++){ //找出最长合数段
if(c[i]>maxx){
maxx=c[i];
kk=i;
}
}
fo...
登录后发布评论
暂无评论,来抢沙发