zoukankan      html  css  js  c++  java
  • 算法 求一个数的质因数

    题目描述

    功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )

    最后一个数后面也要有空格
     

    详细描述:


    函数接口说明:

    public String getResult(long ulDataInput)

    输入参数:

    long ulDataInput:输入的正整数

    返回值:

    String

    输入描述:

    输入一个long型整数

    输出描述:

    按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。

    示例1

    输入

    复制
    180
    

    输出

    复制
    2 2 3 3 5

    思路:
      1、2开始整除能除尽则是质因子
      2、因为质因数顾名思义,即是质数也是因数,那么我们可以从2-sqrt(n)+1,求出其中的质数,然后以此判断能否被n整除。

    #include <iostream>
    #include <algorithm>
    #include <string.h>
    #include <string>
    #include <map>
    using namespace std;

    string GetData(long index)
    {
      int i = 2;
      string ResStr = "";
      while(index>=2){
        if(index%i==0){
           ResStr+=to_string(i)+" ";
           index/=i;
         }
        else{
          i++;
          }
         }
      return ResStr;
    }

    int main() {
      long n;
      cin>>n;
      cout << GetData(n) << endl;
      return 0;
    }

    参考:https://blog.csdn.net/little_girl_ly/article/details/80139092

  • 相关阅读:
    【bzoj4240】有趣的家庭菜园
    「洛谷 P1801」黑匣子
    「SDOI 2009」Elaxia的路线
    NOIP 2016【蚯蚓】
    NOIP 2014【斗地主】
    尺取法
    POJ 3169 Layout
    51nod【1196】字符串的数量
    51nod1671【货物运输】
    hihocoder1075【开锁魔法】
  • 原文地址:https://www.cnblogs.com/liuruoqian/p/11644785.html
Copyright © 2011-2022 走看看