首页 > 代码库 > PAT 1059. Prime Factors
PAT 1059. Prime Factors
反正知道了就是知道,不知道也想不到,很快
#include <cstdio>#include <cstdlib>#include <vector>using namespace std;inline void print_prime_k(long long p, long long k) { printf("%lld", p); if (k > 1) { printf("^%lld", k); }}int main() { long long n, on; scanf("%lld", &n); on = n; vector<long long> ps; vector<long long> count; long long i = 2; long long last = 0; while (n > 1) { while (n % i == 0) { n = n/i; if (i != last) { ps.push_back(i); count.push_back(0); last = i; } count.back()++; } i++; } int len = ps.size(); if (len > 0) { printf("%lld=", on); print_prime_k(ps[0], count[0]); } else { printf("%lld=%lld", on, on); } for (int i=1; i<len; i++) { printf("*"); print_prime_k(ps[i], count[i]); } system("pause"); return 0; }
考虑输入是1的情况输出要为1=1
PAT 1059. Prime Factors
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。