| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 400 人关注过本帖
标题:Time Limit Exceeded超时了hud2012 怎么改进?
只看楼主 加入收藏
末日泡沫
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2015-3-1
结帖率:100%
收藏
 问题点数:0 回复次数:2 
Time Limit Exceeded超时了hud2012 怎么改进?
素数判定
Problem Description
对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。
 
Input
输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。
 
Output
对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。

Sample Input
0 1
0 0
 
Sample Output
OK
 

#include<stdio.h>
#include<math.h>
int main()
{
    int x;
    int y;
    int t;
    int n,m,k;
    int q;
    while(scanf("%d %d",&x,&y)==2)
    {
        if(-39<=x&&x<y&&y<=50)
        {
        if(x==0&y==0)
        continue;
        if(x>y)
        {
            t=x;
            x=y;
            y=t;
        }
        for(n=x;n<=y;n++)
        {
            q=0;
            m=n*n+n+41;
            for(k=2;(k*k)<=m;k++)
            {
                if(m%k==0)
                q=1;
                break;
            }
        }
        if(q==0)
        printf("OK\n");
        else
        printf("sorry\n");
        }
        else
        continue;
    }
    return 0;
}
搜索更多相关主题的帖子: include 表达式 
2015-03-01 12:33
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
唉,好像凡是涉及素数判断超时的都要你使用素数表哦。试下下面代码吧。
#include<stdio.h>
void main()
{
    char prime[3000]={0};
    int i,j,x,y;
    for(i=2;i<3000;i++){if(!prime[i]){for(j=i+i;j<3000;j+=i)prime[j]=1;}}//穷尽0-3000的素数表,0素数
    while(scanf("%d%d",&x,&y))
    {
        if(x>=-39&&y<=50&&x<y)
        {
            for(i=x;i<=y;i++)
                if(prime[i*i+i+41])break;
            if(i==y+1)
                printf("OK\n");
            else
                printf("Sorry\n");
        }
        else
            if(!x&&!y)break;
    }
}

能编个毛线衣吗?
2015-03-01 13:59
末日泡沫
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2015-3-1
收藏
得分:0 
回复 2楼 wmf2014
嗯 谢谢你 不过我就是比较好奇 我原来的超时了,怎么能修正一下
  不过你的这个函数 返回主函数的值应该要int吧
2015-03-01 14:12
快速回复:Time Limit Exceeded超时了hud2012 怎么改进?
数据加载中...
 
   



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

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