首页 > 其他分享 >kedaOJ#P0609. 质因分解加强版

kedaOJ#P0609. 质因分解加强版

时间:2024-06-22 15:43:15浏览次数:11  
标签:kedaOJ std string factors int P0609 result 质因 counts

题目

P0609. 质因分解加强版

思路

代码

#include <iostream>
#include <vector>
#include <string>

std::string primeFactorization(int n) {
    std::vector<int> factors;
    std::vector<int> counts;
    
    for (int i = 2; i * i <= n; ++i) {
        if (n % i == 0) {
            factors.push_back(i);
            counts.push_back(0);
            while (n % i == 0) {
                n /= i;
                counts.back()++;
            }
        }
    }
    
    if (n > 1) {
        factors.push_back(n);
        counts.push_back(1);
    }
    
    std::string result;
    for (size_t i = 0; i < factors.size(); ++i) {
        if (i > 0) {
            result += "*";
        }
        if (counts[i] > 1) {
            result += std::to_string(factors[i]) + "^" + std::to_string(counts[i]);
        } else {
            result += std::to_string(factors[i]);
        }
    }
    
    return result;
}

int main() {
    int n;
    std::cin >> n;
    std::cout << primeFactorization(n) << std::endl;
    return 0;
}

标签:kedaOJ,std,string,factors,int,P0609,result,质因,counts
From: https://www.cnblogs.com/mcr130102/p/18262393

相关文章

  • kedaOJ#P2849时间涟漪
    题目kedaOJ#P2849时间涟漪思路栈代码#include<bits/stdc++.h>usingnamespacestd;intmain(){intN;cin>>N;stack<int>timeRipples;intmaxEnergy=INT_MIN;for(inti=0;i<N;++i){intinstruction;......
  • kedaOJ#P1529有趣的字母
    题目kedaOJ#P1529有趣的字母思路直接模拟,比较复杂的是找到最后一个字符代码#include<bits/stdc++.h>intmain(){std::vector<char>vowels={'a','e','i','o','u'};intn;std::cin>>n;intcount......
  • kedaOJ#P1530一起摇摆
    题目kedaOJ#P1530一起摇摆思路无代码#include<bits/stdc++.h>intmain(){ intn; std::cin>>n; std::vector<int>arr1(n); std::vector<int>arr2(n); for(inti=0;i<n;++i){ std::cin>>arr1[i]; } for(inti=0;i<......
  • kedaOJ-#P2574. [USACO 21DEC.B] Lonely Photo
    题目[USACO21DEC.B]LonelyPhoto思路include<bits/stdc++.h>usingnamespacestd;defineintlonglongdefineN500010intn,m,i,j,k;intl[N],r[N],ans;chara[N];signedmain(){scanf("%d%s",&n,a+1);for(i=1,k=0;i<=n;++i)......
  • NOIP 2012 T1 质因数分解
    描述已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。输入描述输入只有一行,包含一个正整数 n。输出描述输出只有一行,包含一个正整数 p,即较大的那个质数。用例输入1 21用例输出1 7提示【数据范围】对于 60%的数据, 6≤n≤1000。 对于 1......
  • 2032:【例4.18】分解质因数
    2032:【例4.18】分解质因数时间限制:1000ms      内存限制:65536KB提交数:41561   通过数: 26559【题目描述】把一个合数分解成若干个质因数乘积的形式(即求质因数的过程)叫做分解质因数。分解质因数(也称分解素因数)只针对合数。输入一个正整数<spanid="......
  • Java运算符 二进制计算 素数问题 九九乘法表 月份问题 分解质因数 完全数问题 天数计
    1.代码观察inta=6--;System.out.println(a);在Java中,后置递减运算符--只能在整型(int)和长整型(long)变量上使用,而且必须将--放在变量值的后面。因此,6--是非法的,Java编译器会报错。正确代码如下inta=6;a--;System.out.println(a);输出结果为52.代码分析Syst......
  • CSP历年复赛题-P1075 [NOIP2012 普及组] 质因数分解
    原题链接:https://www.luogu.com.cn/problem/P1075题意解读:求n的两个素因子中较大的一个。解题思路:数论的简单题,关键在于要知道一定有一个素因子不超过sqrt(n),而另一个素因子必然大于或等于sqrt(n),这样才能减少枚举时间。100分代码:#include<bits/stdc++.h>usingnamespaces......
  • B3716 分解质因子 3
    原题链接题解1.数组最大能开到1e82.vector比数组容易mle3.筛素数的时间复杂度是O(n)4.由于一个数最多有\(log_2(n)\)个因子,我们标记每一个合数的最小质因子,然后直接除就行(递归思想?)code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;vector<ll>pr......
  • 【模板】分解质因数 Pollard-Rho
    参见洛谷模板题题解,这里只有代码实现。一些强数据参考(输出了最大质因子)79223372036854775783Prime9223371994482243049303700049392232532901085832072097143214748364822147483647Prime21471175694633721417005691289#include<bits/stdc++.h>usingnamespace......