蒟蒻的题解

071maozihan 2022-04-25 12:51:25 45 返回题目

题意概括

————————————————

一道分解质因数的模板题……

(问题是作者太蒻了,居然翻车了一次!!!)

思路分析

—————————————————

这道踢并不是难在分解质因数

而是难在

有没有考虑较大的质数的情况

不然是会TLE的……

代码实现

——————————————————

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
signed main()
{
	cin>>n;
	cout<<n<<"=";
	int d = 2;
	bool f = 0;
	for(int i=2;i*i<=n;i++){ //特判较大质数,防止TLE
		if(n % i == 0){
			f=1;
			break;
		}
	}
	if(!f){
		cout<<n;
		return 0;
	}
//分解质因数
	while(n > 1){
		int tmp=0;
		while(n%d == 0){
			n/=d;
			tmp++;
		}
		if(tmp == 1)cout<<d;
		else if(tmp != 0)cout<<d<<"^"<<tmp;
		if(tmp != 0) if(n > 1) cout<<"*";
		d++;
	}
	return 0;
 } 
{{ vote && vote.total.up }}