| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6831 人关注过本帖, 1 人收藏
标题:输入一个正整数,将其用质因子的乘积表示,输入一个正整数,将其用质因子的 ...
只看楼主 加入收藏
liu0919
Rank: 2
等 级:论坛游民
帖 子:124
专家分:35
注 册:2013-5-13
结帖率:87.8%
收藏(1)
已结贴  问题点数:5 回复次数:14 
输入一个正整数,将其用质因子的乘积表示,输入一个正整数,将其用质因子的乘积表示,并输出结果,格式为:12=2×2×3。
速度
搜索更多相关主题的帖子: 因子 正整数 
2013-05-21 12:40
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
程序代码:
#include<stdio.h>
int main(void)
{
    int i, j=0, b=0, n, t, a[20];
    scanf("%d",&n);
    t=n;
    while(n!=0)
    {
        for(i=2;i<=n;i++)
        {
            if(n%i==0)
            {
            a[j]=i;
            j++;
            b++;
            break;
            }
       }
    n=n/i;
    }
    printf("%d=",t);
    for(j=0;j<b;j++)
    {
        if(j<b-1)
            printf("%dx",a[j]);
        else printf("%d\n",a[j]);
    }
}

我的代码没有优化!自己去看看吧!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-21 13:18
猫小喵
Rank: 2
来 自:计算机专业
等 级:论坛游民
帖 子:29
专家分:77
注 册:2013-5-12
收藏
得分:0 
#include <stdio.h>

void main()
{
    int num=0,i,j=0,a[20],count=0,b;
    do{
        printf("请输入一个正整数:");
        scanf(" %d",&num);
        b=num;
        while(num>2)
        {
            for(i=2;i<=num;i++)
                {
                    if(num%i ==0)
                    {
                        a[j]=i;
                        count++;
                        j++;
                        break;
                    }
                }
                num=num/i;
        }        
    }   
    while(num<0);
   
    if(b == 2 || b == 1)
        printf("%d的约数就是它本身\n",b);
    else
        printf("%d=",b);
    for(j=0;j<count;j++)
    {
        if(j<count-1)
             printf("%dx",a[j]);
        else
             printf("%d\n",a[j]);
    }
}

做一个爱编程得女生
2013-05-21 19:23
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:5 
#include<stdio.h>
int main()
{
    int i, n;
    scanf("%d",&n);
    printf("%d=",n);
    for(i=2;i<n;i++)
       while(n%i==0)
          {
            printf("%dx",i);
            n=n/i;
          }
    printf("%d\n",i);
}
供参考
2013-05-21 22:57
liu0919
Rank: 2
等 级:论坛游民
帖 子:124
专家分:35
注 册:2013-5-13
收藏
得分:0 
回复 4楼 helloUJS
能帮我解释一下么,我看不懂
2013-05-22 20:10
liu0919
Rank: 2
等 级:论坛游民
帖 子:124
专家分:35
注 册:2013-5-13
收藏
得分:0 
回复 4楼 helloUJS
n=n/i;
          }
    printf("%d\n",i);
这几步是干什么用的
2013-05-22 20:14
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:0 
回复 6楼 liu0919
for(i=2;i<n;i++)
       while(n%i==0)    /*若n能除尽i,说明i是n的一个因子*/
          {
            printf("%dx",i); /*输出n的因子i*/
            n=n/i;     /*n缩小i倍,因为输出了i因子*/
          }
    printf("%d\n",i);/*输出最后一个因子,最后一个因子必定是i*/
2013-05-22 21:32
liu0919
Rank: 2
等 级:论坛游民
帖 子:124
专家分:35
注 册:2013-5-13
收藏
得分:0 
回复 7楼 helloUJS
你这个程序有点错误,当你输入49时是49=7x7x8不对了
2013-05-23 10:21
火雨流星泪
Rank: 2
等 级:论坛游民
帖 子:65
专家分:78
注 册:2013-5-12
收藏
得分:0 
参照三楼,我也做了一个
//输入一个正整数,将其用质因子的乘积表示,并输出结果,格式为:12=2×2×3。
# include <stdio.h>
void pro (int a)
{
    int i,j,b,c=0,x[20];
    for (i=2;i<a;i++)
    {
        b=a;
       while(a%i==0)
        {
           x[c]=i;
           c++;
        a=a/i;
        }
        
    }
    x[c]=a;

    printf("%d=%d",b,x[c]);
    for (j=c-1;j>=0;j--)
    {
        printf("x%d",x[j]);
    }
}
main()
{
    int a;
    printf("输入一个正整数:");
    scanf("%d",&a);
    pro(a);
}嘿嘿,三楼莫怪
2013-05-23 12:14
zhangshifeng
Rank: 2
等 级:论坛游民
帖 子:24
专家分:57
注 册:2013-5-19
收藏
得分:0 
2013-05-23 14:43
快速回复:输入一个正整数,将其用质因子的乘积表示,输入一个正整数,将其用质因 ...
数据加载中...
 
   



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

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