70分求调,3个TLE
查看原帖
70分求调,3个TLE
915921
DougNo1楼主2024/8/22 10:44

代码:

#include <bits/stdc++.h>
using namespace std;
bool pd(long long x){
	if(x==2) return 1;
	for(int i=2;i<=(sqrt(x)+1);i++){
		if(x%i==0) return 0;
	}
	return 1;
}
int main(){
    long long a,b=2;
    cin>>a;
    while(a>1){
		if(pd(a)==1){
			cout<<a;
			return 0;
		}
		if(pd(b)==1 && a%b==0){
			long long sum=0;
			for(int i=1;;i++){
				if(a%b==0){
					sum++;
					a/=b;
				}else{
					break;
				}
			}
			if(sum>0){
				if(sum==1) cout<<b;
				else cout<<b<<"^"<<sum;
				if(a>1) cout<<" * ";
			}
		}
		b++;
    }
    return 0;
}

提交记录

帮我的必关注!

2024/8/22 10:44
加载中...