质因子分解/1096/1059

1096 Consecutive Factors (20分)

在这里插入图片描述
输出:

3
5*6*7
#include <cstdio>
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn = 100010;
typedef long long LL; 
int main()
{
    
    
	LL n;
	cin >> n;
	//ansI连续的第一个数 ansLen
	LL sqr = sqrt(n), ansI, ansLen = 0;
	for(int i = 2; i <= sqr; i++)
	{
    
    
		int j = i, temp = 1,len = 0,k = 0;
		while(1)
		{
    
    
			temp *= j;
			if(n % temp != 0) break;
			len++;
	        j++;  
	        if(temp == n) break;
		}
		if(len > ansLen) 
		{
    
    
			ansLen = len;
		    ansI = i;
		}
	}
	if(ansLen == 0) 
	{
    
    
		cout << "1" << endl;
		cout << n;
	}
	else
	{
    
    
		cout << ansLen<< endl;
		int m = 0;
		cout << ansI;
		while(m < ansLen -1)
		{
    
    
			printf("*%lld",ansI+(++m));
		}
	}
	return 0;
}

1059 Prime Factors (25分)

在这里插入图片描述

#include <cstdio>
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn = 1000100;
typedef long long LL; 
struct factor
{
    
    
	int x;
	int cnt;
}fac[maxn];
//打印素数表 prime数组中存放素数
int prime[maxn], pNum = 0;
bool p[maxn] = {
    
    0};
void find_prime()
{
    
    
	for(int i = 2; i <= maxn; i++)
	{
    
    
		if(p[i] == false)
		{
    
    
			prime[pNum++] = i;
			for(int j = i + i; j <= maxn; j += i)
			{
    
    
				p[j] = true;
			}
		}
	}
}
int main()
{
    
    	
	LL n,k;
	cin >> n;
	k = n;
	find_prime();
	int j = 0; //记录因子
	//找因子 求因子个数
	for(int i = 0; i < pNum; i++)
	{
    
    
		if(n % prime[i] == 0)
		{
    
    
			fac[j].x = prime[i];
			fac[j].cnt = 0;
			//求因子个数
			while(n % prime[i] == 0)
			{
    
    
				fac[j].cnt++;
				n = n / prime[i];
			}
			j++;
		}
		else continue;

	}
	if(n == k) printf("%lld=%lld\n",k,k);
	else
	{
    
    
		printf("%lld=%d",k,fac[0].x);
		if(fac[0].cnt >=2) 
			{
    
    
				printf("^%d",fac[0].cnt);
			}
		for(int i=1; i < j;i++)
		{
    
    
			printf("*%d",fac[i].x);
			if(fac[i].cnt >=2) 
			{
    
    
				printf("^%d",fac[i].cnt);
			}
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/moumoumouwang/article/details/112598758