⬆︎
×

[PAT-A] 1059 Prime Factors

Hyplus目录

Java

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        System.out.print(n + "=");
        if (n == 1) {
            System.out.println("1");
        } else {
            boolean isFirst = true;
            for (int i = 2; i <= n / i; i++) {
                if (n % i == 0) {
                    int k = 0;
                    while (n % i == 0) {
                        n /= i;
                        k++;
                    }
                    if (!isFirst) System.out.print("*");
                    else isFirst = false;

                    System.out.print(i);
                    if (k > 1) System.out.print("^" + k);
                }
            }

            if (n > 1) {
                if (!isFirst) System.out.print("*");
                System.out.print(n);
            }
            System.out.println();
        }
    }
}

C++

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

int main() {
    int n;
    cin >> n;

    printf("%d=", n);
    if (n == 1) puts("1");
    else {
        bool is_first = true;
        for (int i = 2; i <= n / i; i++)
            if (n % i == 0) {
                int k = 0;
                while (n % i == 0) {
                    n /= i;
                    k++;
                }
                if (!is_first) cout << '*';
                else is_first = false;

                cout << i;
                if (k > 1) cout << "^" << k;
            }

        if (n > 1) {
            if (!is_first) cout << '*';
            cout << n;
        }
    }

    return 0;
}

发表评论