zoukankan      html  css  js  c++  java
  • 分解质因数

     
    分解质因数代码:
    将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
    程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 
    (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
    (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
     重复执行第一步。
    (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
    #include<stdio.h>
    main()
    {
      int n,i;
      scanf("%d",&n);
      printf("%d=",n);
      for(i=2;i<=n;i++)
        while(n!=i)
        {
          if(n%i==0)
          {
            printf("%d*",i);
            n=n/i;
          }
          else
            break;
        }
      printf("%d",n);
    }

    另一个代码

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    
    int factor[50];
    
    int trial_divisio_fac(int n)
    {
        int a=2;
        int cnt=0;
        while(a*a<=n)
        {
            while(n%a==0)
            {
                factor[cnt++]=a;
                n=n/a;
            }
            a++;
        }
        if(n>1) factor[cnt++]=n;
        return cnt;
    }
    void solve(int n)
    {
        while(n%2==0)
        {
            printf("%d*",2);
            n/=2;
        }
        for(int i=3; i<=sqrt(n); i+=2)
        {
            if(n%i==0)
            {
                n/=i;
                printf("%d*",i);
                i-=2;
            }
        }
        printf("%d
    ",n);
    }
  • 相关阅读:
    UVALive 7509 Dome and Steles
    HDU 5884 Sort
    Gym 101194H Great Cells
    HDU 5451 Best Solver
    HDU 5883 The Best Path
    HDU 5875 Function
    卡特兰数
    UVa 11729 Commando War 突击战
    UVa 11292 The Dragon of Loowater 勇者斗恶龙
    Spark Scala Flink版本对应关系
  • 原文地址:https://www.cnblogs.com/pach/p/6028070.html
Copyright © 2011-2022 走看看