C++14,3个TLE
查看原帖
C++14,3个TLE
947202
wangruize88楼主2024/5/18 20:42

#2#6#9 TLE了

#include <iostream>
using namespace std ;
long long m = 0 ;  //记录最大因子
int ans[100000001] ;   //存储答案,分解的因数有ans[i]个因子i
void fun ( long long n , long long p ) {
	if ( n == 1 ) return ;
	if ( n%p == 0 ) ans[p]++ , m=p , fun ( n/p , p ) ;
	else fun ( n , p+1 ) ;
}  //递归分解质因子
int main () {
	long long n ;
	cin >> n ;
	fun ( n , 2 ) ;  //调用
	for ( long long i = 1 ; i < m ; i ++ ) {
		if ( ans[i] == 1 ) cout << i << " * " ;
		else if ( ans[i] > 1 ) cout << i << '^' << ans[i] << " * " ;  //输出
	}
	if ( ans[m] == 1 ) cout << m ;
	else if ( ans[m] > 1 ) cout << m << '^' << ans[m] ;  //最后的因子不输出乘号
	return 0 ;
}
2024/5/18 20:42
加载中...