求条
  • 板块题目总版
  • 楼主ew3www
  • 当前回复2
  • 已保存回复2
  • 发布时间2025/2/5 18:03
  • 上次更新2025/2/5 21:13:47
查看原帖
求条
1160934
ew3www楼主2025/2/5 18:03

站外题

题目描述如下:

正整数分解为质因式,输出如下形式:如2=2,3=3,4=22,5=5,6=2×3,100=22×522=2,3=3,4=2^2,5=5,6=2×3,100=2^2\times5^2

输入输出样例

输入:

100

输出:

100=2^2*5^2

说明:

n109n\leq10^9

Time:1s

Memory:128M

My Code:(93pts)

#include <bits/stdc++.h>
using namespace std;
#define int long long
main()
{
    int n;
    cin >> n;
    int fzlist[114514];
    int len = 0;
    int w = n;
    while(n > 1)
    {
        for(int i = 2; i <= n; i++)
        {
            if(n % i == 0)
            {
                fzlist[len] = i;
                len++;
                n /= i;
                break;
            }
        }
    }
    fzlist[len] = -1;
    sort(fzlist, fzlist + len);
    int tmp = fzlist[0], cnt = 1;
    cout << w << '=';
    for(int i = 0; i < len; i++)
    {
        if(fzlist[i] != fzlist[i + 1])
        {
            cout << tmp;
            if(cnt != 0 && cnt != 1) 
            {
                cout << '^' << cnt;
            }
            if(fzlist[i + 1] != -1) putchar('*');
            tmp = fzlist[i + 1];
            cnt = 1;
        }
        else
        {
            cnt++;
        }
    }
    return 0;
}
2025/2/5 18:03
加载中...