zoukankan      html  css  js  c++  java
  • CodeForces 797A k-Factorization

    质因数分解。

    分解一下质因数,如果个数小于$k$个,则无解,否则把多出来的合成一个数。

    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <string>
    #include <queue>
    #include <stack>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    int b[100010],sz;
    int n,k;
    int a[100010];
    vector<int>ans;
    
    bool prime(int x)
    {
    	for(int i=2;i*i<=x;i++)
    	{
    		if(x%i==0) return 0;
    	}
    	return 1;
    }
    
    void init()
    {
    	for(int i=2;i<=100000;i++)
    	{
    		if(prime(i)) b[sz++] =i;
    	}
    }
    
    int main()
    {
    	init();
    	scanf("%d%d",&n,&k);
    
    	for(int i=0;i<sz;i++)
    	{
    		while(n%b[i]==0)
    		{
    			ans.push_back(b[i]);
    			n=n/b[i];
    		}
    		if(n==1) break;
    	}
    
    	if(ans.size()<k)
    	{
    		printf("-1
    ");
    	}
    	else 
    	{
    		for(int i=0;i<k-1;i++)
    		{
    			printf("%d ",ans[i]);
    		}
    		int p=1;
    		for(int i=k-1;i<ans.size();i++)
    		{
    			p=p*ans[i];
    		}
    		printf("%d
    ",p);
    	}
    
    	return 0;
    }
    
  • 相关阅读:
    原来 是 需要的,
    传说中的 拉伸,
    date + 排序,
    两个 header,
    招财铃,负责模块,
    一个字母,
    一个词,
    vue+webpack静态资源路径引用
    Webstorm 的 Tab 键调整缩进值
    ES6常用语法
  • 原文地址:https://www.cnblogs.com/zufezzt/p/6829112.html
Copyright © 2011-2022 走看看