首页 > 代码库 > 2677: 【基础】连续非素数的最长度
2677: 【基础】连续非素数的最长度
题目:
时间限制 : 1 Sec
内存限制 : 64 Mb
提交 : 117
解决 : 71
题目描述
给出一个正整数n(2≤n≤1000000),例如n=30,在1,2,3,……30中,连续的非素数有
4 长度为1
6 长度为1
8 9 10 长度为3
12 长度为1
14 15 16 长度为3
18 长度为1
20 21 22 长度为3
24 25 26 27 28 长度为5
30 长度为1
其中,最大长度为5,即有连续的5个非素数。
输入
一个整数n
输出
一个整数,即连续非素数最大长度
样例输入
12
样例输出
3
算法:
1、筛法求素数。
2、计数器统计+打擂台。
3、输出。
标程:
#include<bits/stdc++.h>
using namespace std;
int c[1000001],n,lmax,an;
int main()
{
cin>>n;
c[1]=1;
for (int i=2;i<=n;i++)
{
if (c[i]==0)
{
for (int j=i+i;j<=n;j+=i)
{
c[j]=1;
}
}
}
lmax=0;
an=0;
for (int i=4;i<=n;i++)
{
if (c[i]==1)an++;
if (c[i]==0)an=0;
if (an>lmax)lmax=an;
}
cout<<lmax<<endl;
return 0;
}
using namespace std;
int c[1000001],n,lmax,an;
int main()
{
cin>>n;
c[1]=1;
for (int i=2;i<=n;i++)
{
if (c[i]==0)
{
for (int j=i+i;j<=n;j+=i)
{
c[j]=1;
}
}
}
lmax=0;
an=0;
for (int i=4;i<=n;i++)
{
if (c[i]==1)an++;
if (c[i]==0)an=0;
if (an>lmax)lmax=an;
}
cout<<lmax<<endl;
return 0;
}
2677: 【基础】连续非素数的最长度
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。