任务描述
本关任务:对于指定的正整数m(1<=m<=200),在正整数中搜索最小的连续m个合数,输出该区间的起始数与终止数。
编程要求
根据提示,在右侧编辑器补充代码,输出该区间的起始数与终止数。
测试说明
平台会对你编写的代码进行测试:
测试输入:20;
预期输出:
最小的连续20个合数为:1130,1149
测试输入:50;
预期输出:
最小的连续50个合数为:19610,19659
代码:
#include "iostream"
#include <math.h>
using namespace std;
int check(int x){
if(x==2) return 0;
for (int i=2;i<=sqrt(x);i++){
if(x%i==0){
return 1;
}
}
return 0;
}
int main()
{
int n;
cin>>n;
int cnt=0;
int fl=0;
for (int i=1;;i++){
int tmp = i;
if(check(tmp)){
if(!fl){
fl=1;
cnt++;
}
else {
cnt++;
}
if(cnt==n){
cout<<"最小的连续"<<n<<"个合数为:";
cout<<i-n+1<<","<<i;
return 0;
}
}
else {
fl=0;
cnt=0;
}
}
}