| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2351 人关注过本帖
标题:一道素数槽的题目,一直超时,哪位大佬来指点一下
取消只看楼主 加入收藏
x三生石x
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2018-10-27
结帖率:70%
收藏
已结贴  问题点数:20 回复次数:3 
一道素数槽的题目,一直超时,哪位大佬来指点一下
相邻的两个素数p和p + n之间的n - 1个连续的合数所组成的序列,称为长度为n的素数槽。

例如,24, 25, 26, 27, 28 是处于素数23和素数29之间的一个长度为6的素数槽。

写一个程序来计算:包含整数k的素数槽的长度。如果k本身就是素数,那么认为包含k的素数槽的长度为0。

Input
多测试用例。第一行是一个数字n,表示测试用例的个数。

接下来有n行,每行是一个正整数k, k大于1并且小于或等于第十万个素数(也就是1299709)。

Output
对于输入的每一个k,都对应输出一个非负整数,表示包含k的素数槽的长度,每个非负整数占一行。


代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
    int n;
    scanf("%d",&n);
    while(n--)
    {
        int m,y,i,t=0;
        scanf("%d",&m);

        for(i=m;;i++)
        {
            y=0;
            for(int j=2;j<=sqrt(i);j++)
                if(i%j==0)y=1;
            if(y!=1&&i==m)
                {printf("0\n");break;}
            else if(y!=1&&i!=m)
                {t=1;break;}
        }

        if(t==1)
        {
            for(int k=m-1;;k--)
            {
                y=0;
                for(int j=2;j<sqrt(i);j++)
                    if(k%j==0)y=1;
                if(y!=1)
                    {printf("%d\n",i-k);break;}
            }
        }


    }
    return 0;
}


搜索更多相关主题的帖子: 素数 长度 整数 int for 
2018-12-15 13:18
x三生石x
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2018-10-27
收藏
得分:0 
没人吗
2018-12-15 14:47
x三生石x
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2018-10-27
收藏
得分:0 
有哪位大佬来指点一下吗一直超时,有没有什么更快的算法
2018-12-16 15:37
x三生石x
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2018-10-27
收藏
得分:0 
。。。
2018-12-16 23:11
快速回复:一道素数槽的题目,一直超时,哪位大佬来指点一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024169 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved