| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 709 人关注过本帖
标题:敬请高手精简程序
只看楼主 加入收藏
xjp814
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-4-24
收藏
 问题点数:0 回复次数:2 
敬请高手精简程序
输入几个数,输出每个数小于它且没公约数的数的个数。(输入个数无限制)下面是小弟写的,但用时太长,望高手能展现你的能力,帮我解难。Thank you!
#include <stdio.h>
int flag(int a,int b)
{    int j,n;
    while((j=a%b)!=0)
    {a=b;
     b=j;
     n=b;
    }
    if(n!=1) n=0;
    return(n);
}
void main()
{
    int n,i,j;
    while(scanf("%d",&n)!=EOF)
    {j=1;
     for(i=1;i<n;i++)
     if(flag(n,i))  j++;
     printf("%d\n",j);
    }
}

[[it] 本帖最后由 xjp814 于 2008-4-24 22:02 编辑 [/it]]
搜索更多相关主题的帖子: int 精简 公约数 
2008-04-24 22:00
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
最佳时间复杂度应该是O(sqrt(n))
你的用了O(n),当然慢

注意,你要是说精简的话,那就已经没什么好精简了

" border="0" />[color=white]
收到的鲜花
  • xjp8142008-04-24 22:24 送鲜花  1朵   附言:虽然收获不大,但谢了。
2008-04-24 22:15
xjp814
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-4-24
收藏
得分:0 
回复 2# 的帖子
虽然收获不大,但谢了。

If you have a dream,you can make it!
2008-04-24 22:25
快速回复:敬请高手精简程序
数据加载中...
 
   



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

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