搜索
查看: 2331|回复: 4
打印 上一主题 下一主题

啊哈c语言的困惑

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-10 20:56:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
啊哈c语言第七题 987654321最大的质因数是??

我编写的是下列代码:

# include <stdio.h>

bool Isprime (int val)
{
        int i;

        for (i=2; i<val; i++)
                if (val%i == 0)
                        break;
        if (i == val)
                return true;
        else
                return false;
}

int traverseval (int n)
{
        int i,a;

        for (i=2; i<=n; i++)
        {
                if (Isprime(i))
                        if (n%i == 0)
                        {
                                a = i;
                        }
        }
        return a;
       
}

int main(void)
{
        int n=987654321,i;

        i = traverseval(n);

        printf("%u\n",i);

        return 0;
}

运行时 为什么 显示






然后半天 都没有反应??????{:soso_e132:}

请问有没有改进的方法???












推荐
 楼主| 发表于 2013-4-15 21:11:02 | 只看该作者
kekegcs 发表于 2013-4-12 12:31
#include
#include
int main()

哦哦  谢谢了
沙发
发表于 2013-4-10 23:33:10 | 只看该作者
你的算法太慢了吧,计算机还没有算出来
板凳
 楼主| 发表于 2013-4-11 19:03:04 | 只看该作者
霁涟熙 发表于 2013-4-10 23:33
你的算法太慢了吧,计算机还没有算出来

  是啊 !!  算不出来啊。。。。。
地板
发表于 2013-4-12 12:31:13 | 只看该作者
本帖最后由 kekegcs 于 2013-4-12 12:55 编辑

#include <stdio.h>
#include <stdlib.h>
int main()
{
        long a;
        long z;
for(a=987654321;a>1;a/=z){        
        for(z=2;z<=a/2;z++)
          if(a%z==0)        
             break;               
           if(z>a/2)                                
             printf("%ld\n",a);  
                 }        
        system("pause");
        return 0;
}

评分

参与人数 1啊哈币 +2 收起 理由
回遗未来 + 2 很给力!

查看全部评分

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表