zoukankan      html  css  js  c++  java
  • [CF797A] k-Factorization(分解因数,构造)

    题目链接:http://codeforces.com/contest/797/problem/A

    题意:给一个n,一个k。问用k个不是1的数的乘积表示n,能不能表示,能的话输出解。

    把n分解质因数,看看一共有多少质因数。输出前k-1个因数,最后一个数用这个数去除以之前的乘积。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 typedef long long LL;
     5 vector<int> a, p;
     6 int n, k;
     7 
     8 int main() {
     9     // freopen("in", "r", stdin);
    10     while(~scanf("%d%d",&n,&k)) {
    11         int m = n, tot = 0;
    12         a.clear(); p.clear();
    13         for(int i = 2; i * i <= m; i++) {
    14             if(m % i == 0) {
    15                 int cnt = 0;
    16                 while(m % i == 0) {
    17                     m /= i;
    18                     cnt++;
    19                 }
    20                 tot += cnt;
    21                 p.push_back(i);
    22                 a.push_back(cnt);
    23             }
    24         }
    25         if(m != 1) {
    26             tot++;
    27             p.push_back(m);
    28             a.push_back(1);
    29         }
    30         if(tot < k) {
    31             puts("-1");
    32             continue;
    33         }
    34         int tmp = 1;
    35         for(int i = 0; i < p.size(); i++) {
    36             while(a[i] && k - 1) {
    37                 printf("%d ", p[i]);
    38                 tmp *= p[i];
    39                 a[i]--; k--;
    40             }
    41         }
    42         printf("%d
    ", n / tmp);
    43     }
    44     return 0;
    45 }
  • 相关阅读:
    ASP.NET MVC Razor 视图引擎
    Asp.net MVC3 Razor语法小记
    @RenderPage用法
    余数算法
    Linux命令行下运行java.class文件
    Java学习---9.GUI编程
    Java学习---8.线程同步
    Java学习---7.多线程
    Java学习---6.常用的容器,流
    Java学习---5.数组
  • 原文地址:https://www.cnblogs.com/kirai/p/6845494.html
Copyright © 2011-2022 走看看