超时3个点,求解
查看原帖
超时3个点,求解
1145211
GaoHenry2011楼主2024/9/1 09:43
#include<bits/stdc++.h>
using namespace std;
long long n;
long long a[10000000],s,flag=1;
bool z(long long n){
	for(long long i=2;i<n;i++){
		if(n%i==0) return false;
	}
	return true;
}
int main(){
    cin>>n;
    if(n==1){
		cout<<1;
		return 0;
	}else if(n==0){
		cout<<0;
		return 0;
	}
    for(long long i=2;i<=n;i++){
		if(n<=1){
			break;
		}
		if(n%i==0){
			if(z(i)){
				s=0;
				while(n%i==0) n/=i,s++;
				if(flag==1) flag=0;
				else cout<<" * ";
				if(s<=1) cout<<i;
				else cout<<i<<"^"<<s;
			}
		}
	}
    return 0;
}
2024/9/1 09:43
加载中...