| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 393 人关注过本帖
标题:一个程序,不知道该怎么提高效率了
只看楼主 加入收藏
SLmask
Rank: 2
等 级:论坛游民
帖 子:14
专家分:27
注 册:2012-10-18
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:1 
一个程序,不知道该怎么提高效率了
原题:
sTime Limit: 1000MS   Memory Limit: 65536KB   Difficulty:
Total Submit: 2391  Accepted: 237  Special Judge: No
Description
         zyf最喜欢的数字是1!所以他经常会使用一些手段,把一些非1的数字变 成1,并为此得意不已。他会且仅会的两种手段是:
1.把某个数m除以某个质数p——当然p必须能整除这个数,即m=m/p
2.把某个数m减1,即m=m-1
有一天他突发奇想,想把[a,b]区间中所有的数一个一个地变成1,这是一个巨大的无聊的工程,所以他想知道他最少得花多少操作才能达到目 的。

Input
  输入包含多组数据(1000组数据),EOF结束。
  每组数据以两个整数开头:a,b(0<a<=b<=100000),意义如题意描述。
Output
  每组数据输出一行,最少操作数。
Sample Input
2 3
3 5
11 12
Sample Output
2
4
3
Hint
Source
2010.04内部测试赛(Author: Qinz)

程序就是下面这个:

#include<stdio.h>
#include<math.h>

int isPrime(long);
int times(long);
int result[1000];

int main(void)
{
    long a,b,i;
    int n = 0;
    while(scanf("%ld %ld",&a,&b) == 2)
    {
        n ++;
        for(i = a;i <= b;i = i+1)
        {
            result[n - 1] += times(i);
        }
        if(getchar() == EOF) break;
    }
    for(i = 0;i < n;i ++)
        printf("%d\n",result[i]);

    return 0;
}

int isPrime(long a)
{
    int f = 0,i;
    if(a == 1)
        return f;
    double m = sqrt(a);
    for(i =2;i <=(int)m;i ++)
        if(a%(int)m == 0) break;
        else continue;
    if(i == (int)m + 1) f = 1;
    return f;
}

int times(long i)
{
    int result = 0;
    while(!isPrime(i))
    {
        result++;
        i = i-1;
    }
    result ++;
    return result;
}

实例里面的测试数据显示结果没问题,其他的我也不知道了,但是首先它说超时了,所以想要知道这个代码还可以怎样改进,或者说代码还有什么问题没有

另外问一下,那种编程艺术之类的书 ,就是教你怎样提高写代码效率的书现在看有用吗,因为我也是起步阶段,觉得应该多做一些题,可是遇到像现在这个问题又没有办法处理,真的有些纠结了
搜索更多相关主题的帖子: 突发奇想 Memory 
2012-12-21 01:46
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:10 
空间换时间,c语言交流群 大家可以加下一起分享成长280913986。

Go Go Go
2012-12-21 08:53
快速回复:一个程序,不知道该怎么提高效率了
数据加载中...
 
   



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

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