码迷,mamicode.com
首页 > 其他好文 > 详细

第五周练习(1)

时间:2016-04-13 12:40:20      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:

题目内容:

每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。

现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身。 

输入格式:

一个整数,范围在[2,100000]内。

输出格式:

形如: n=axbxcxd 或 n=n

所有的符号之间都没有空格,x是小写字母x。

输入样例: 18

输出样例: 18=2x3x3

源代码:

#include <stdio.h>
int isPrime(long int a);//判断输入的数是否为素数
int main()
{
    long int n,i,ret;
    i=2;
    ret=1;//判断因子输出状态的位 
    scanf("%d",&n);
    if(isPrime(n)==1)
    {
        printf("%d=%d",n,n);
    }
    else{
        printf("%d=",n);
        while(n>=i)
        {
            while(n%i==0)
            {
                if(ret)
                 {
                     printf("%d",i);
                     ret=0;
                 }
                else
                {
                    printf("x%d",i);
                }
                n/=i;
                
            }
            i++;
        }
    }
    return 0;
}

int isPrime(long int a)  
{
    int isPrime=1;//是素数 
    long int i;
    for(i=2;i<a;i++)
    {
        if(a%i==0){
            isPrime=0;
            break;
        }    
    }
   return isPrime;
}

重点:判断输入数的因子是表示为*%d还是%d*,前者要考虑第一个因子输出的条件,后者是考虑最后一个因子输出的条件

第五周练习(1)

标签:

原文地址:http://www.cnblogs.com/meilirensheng/p/5386414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!