zoukankan      html  css  js  c++  java
  • HDU1164 Eddy's research I【素因子分解】

    问题链接HDU1164 Eddy's research I

    问题描述参见上文。

    问题分析这是一个整数因子分解问题。

    采用计算欧拉函数的基本思想进行分解,即从小因子开始逐步分解。

    需要注意的是,对于需要分解的整数n,最后被分解到只剩下1时,不需要输出,即不输出1。

    程序说明(略)


    AC的C语言程序如下:

    #include <stdio.h>
    #include <math.h>
    
    // 欧拉函数法
    void divide(int n)
    {
        int count = 0, i;
    
        while(n%2 == 0) {
            n /= 2;
            if(++count == 1)
                printf("2");
            else
                printf("*2");
        }
    
        for(i=3; i*i<=n; i+=2) {
            if(n%i == 0) {
                n /= i;
                if(++count == 1)
                    printf("%d", i);
                else
                    printf("*%d", i);
                while(n%i == 0) {
                    n /= i;
                    printf("*%d", i);
                }
            }
        }
        if(n != 1) {
            if(++count == 1)
                printf("%d", n);
            else
                printf("*%d", n);
        }
        printf("
    ");
    }
    
    int main(void)
    {
        int n;
        while(scanf("%d", &n) != EOF)
            divide(n);
    
        return 0;
    }



  • 相关阅读:
    mangoDB
    python文档
    单例模式
    celery
    flask 部署
    json
    Docker+Jenkins+Go完成自动化部署
    Go多协程循环打印ABAC
    正则表达式
    从零开始学Go之并发(四):互斥
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564901.html
Copyright © 2011-2022 走看看