CCF NOI1170 质因数分解

问题链接CCF NOI1170 质因数分解




时间限制: 1000 ms  空间限制: 262144 KB

题目描述 

  对于正整数N的质因数分解,指的是将其写成以下形式:
  N=p1*p2*...*pm,其中p1,p2,...pm为不下降的质数
  给定N,输出其质因数分解的形式。

输入

  输入一个正整数N。

输出

  输出N的质因数分解的形式p1*p2*...*pm,其中p1,p2,...,pm都是质数,且p1<=p2<=...<=pm。

样例输入

60
样例输出

2*2*3*5

数据范围限制

  2<=N<=10^9

提示

 




问题分析

  整数因子分解问题,从小到大试探即可。

  结束条件需要控制好。

  输出格式需要控制好。

程序说明

  (略)

要点详解

  • 把功能封装到函数中是一个好的做法。
  • 要根据输入数的类型选用合适的类型。



参考链接欧拉函数

100分通过的C语言程序:

#include <stdio.h>

void fact(long n)
{
    long i;
    int flag = 0;

    for(i=2; i*i<=n; i++) {
        if(n%i == 0) {
            n /= i;
            if(flag)
                printf("*%ld", i);
            else {
                printf("%ld", i);
                flag = 1;
            }
            while(n%i == 0) {
                n /= i;
                if(flag)
                    printf("*%ld", i);
                else {
                    printf("%ld", i);
                    flag = 1;
                }
            }
        }
    }
    if(n>1) {
        if(flag)
            printf("*%ld", n);
        else
            printf("%ld", n);
    }
    printf("\n");
}

int main(void)
{
    long n;

    scanf("%ld", &n);

    fact(n);

    return 0;
}



posted on 2017-05-05 19:32  海岛Blog  阅读(452)  评论(0编辑  收藏  举报

导航