求调 && 悬关
查看原帖
求调 && 悬关
1034295
QuaternaryTree楼主2024/7/10 14:59
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;

#define int long long
int n;

bool isPrime(int n){
	if(n < 2) return false;
	else if(n == 2) return true;
	for(int i = 2;i * i <= n;i++){
		if(n % i == 0){
			return false;
		}
	}
	return true;
}

int ans[114514];
int tt;

signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	cin>>n;
	if(isPrime(n) == true){
		cout<<n<<endl;
		return 0;
	}
	for(int i = 2;i <= n;i++){
		if(isPrime(i) == true){
			ans[i] ++;
			n /= i;
			//cout<<ans[i]<<endl;
		}
		if(n == 0){
			tt = n;
		}
	}
	for(int i = 2;i <= n;i++){
		if(isPrime(i) == true){
			cout<<i;
			ans[i]--;
			if(ans[i] > 0){
				cout<<"^"<<ans[i];
			}
			if(tt == i){
				cout<<"*";
			}else{
				continue;
			}
		}
	}
	return 0;
}
2024/7/10 14:59
加载中...