求助!!!
查看原帖
求助!!!
1335723
zjh2011312楼主2024/12/29 15:48

求助27号测试点过不去,求调

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,a[100000000],l=0,sum=1,ans=1,z[100000000];
int main() {
	cin>>n;
	ll t=n;
	bool p=1;
	for (int i=2;i<=sqrt(n);i++){
		if (n%i==0){
			p=0;
			break;
		}
	}
	if (p){
		cout<<1;
		return 0;
	}
	for (ll i=2;i<=sqrt(n);i++){
		while(t%i==0){
			t/=i;
			a[l++]=i;
		}
	}
	if (t>1) a[l]=t;
	z[0]=a[0];
	for (ll i=1;i<=l;i++){
		ans*=a[i];
		bool f=1;
		for (ll j=0;j<sum;j++){
			if (z[j]==ans){
				f=0;
				break;
			}
		} 
		if (f&&ans){
			z[sum++]=ans;
			ans=1;
		}
	} 
	cout<<sum;
	return 0;
}
2024/12/29 15:48
加载中...