| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 709 人关注过本帖, 1 人收藏
标题:求一道题目的正解
只看楼主 加入收藏
lythonmao
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2011-10-27
结帖率:75%
收藏(1)
已结贴  问题点数:10 回复次数:9 
求一道题目的正解
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
要求:
请写清楚 程序分析 和 源代码。 谢谢`~~~
搜索更多相关主题的帖子: 分析 源代码 正整数 质因数 
2011-11-09 20:04
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 楼主 lythonmao
找版主

总有那身价贱的人给作业贴回复完整的代码
2011-11-09 20:07
yangguohui
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:18
专家分:21
注 册:2011-11-6
收藏
得分:0 
是作业吗?
2011-11-09 20:12
『点点滴滴』
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:168
专家分:1035
注 册:2007-7-9
收藏
得分:5 
程序代码:
#include <stdio.h>

void solve( int n , int cur )
{
    if( n % cur == 0 )  //如果能整除
    {
        n /= cur ;
        printf("%d", cur ) ;

        if( n == 1 )
        {
            printf("\n") ;  // n为1时候退出
            return ;
        }
        else printf("*") ;  // n不为1时候输出乘号

        solve( n , cur ) ;  // 整除时候用当前因子继续试
    }
    else
        solve( n , ++cur ) ; // 因子加1继续试
}

int main()
{
    int n ;

    scanf("%d", &n ) ;

    printf("%d=", n ) ;

    solve( n , 2 ) ; // 因子从2开始

    return 0 ;
}
2011-11-09 20:13
fei741878347
Rank: 2
等 级:论坛游民
帖 子:35
专家分:45
注 册:2011-3-20
收藏
得分:0 
分解质因数?
2011-11-09 21:40
lythonmao
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2011-10-27
收藏
得分:0 
谢谢四楼,,,不知道谁还有别的解`~~请写下;程序分析      源代码~~
2011-11-10 11:47
樾宝
Rank: 3Rank: 3
来 自:常德
等 级:论坛游侠
帖 子:72
专家分:147
注 册:2011-8-19
收藏
得分:0 
可以用for循环
和if嵌套
2011-11-10 12:34
朔州小子
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2011-9-24
收藏
得分:0 
不明白啊,比如5呢?5=1*5也是分解质因数?
2011-11-10 12:50
liao06550107
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:111
专家分:696
注 册:2011-10-2
收藏
得分:5 
程序代码:
#include <stdio.h>

void fun(int n)
{
    while(1)
    {
        for(int j=2; j <= n; j++)
        {
                if(n%j == 0)
                {
                    n /= j;
                    printf("%d", j);
                    break;
                }
        }
        if(n == 1)
        {
            printf("\n");
            return;
        }
        else
            printf("*");
    }
}

int main(void)
{
    int n ;

    printf("请输入数字:");

    scanf("%d", &n ) ;

    printf("%d=", n ) ;

    fun(n) ; 

    return 0 ;
}


[ 本帖最后由 liao06550107 于 2011-11-10 14:08 编辑 ]

听不同的音乐,看不同的书,游历不同的城市,邂逅不同的人,走的多了,站的高了,自然就看的远了。
2011-11-10 13:57
cqm9266
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:174
专家分:186
注 册:2011-10-28
收藏
得分:0 
#include <stdio.h>
int sort(int n)
{
    int k;
    for (k=2;k<=n;k++)
    {     if (n==1) return (0);
        else if (n%k==0)printf("%d*",k),sort(n/k);
}}
void main ()
{printf("input n\n");
int n;
scanf("%d",&n);
sort(n);
} 我这个代码可以输出来 但是输出很多多余的数字 为什么啊?

没病的人说有病的人有病,有病的人说没病的人有病。到底是谁有病?
2011-11-10 16:22
快速回复:求一道题目的正解
数据加载中...
 
   



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

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