1 条题解

  • 0
    @ 2024-11-24 9:51:08
    //#include<bits/stdc++.h>
    #define int long long
    #define IO ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    using namespace std;
    int cun[100000];int k;int s[100000];
    int ksm(int a,int b){
    	int x=1;
    	while(b>0)
    	{
    		if(b&1) x*=a;	
    		b>>=1;
    		a*=a;
    	}
    	return x;	
    }
    signed main()
    {
    	IO;
    	int x;
    	cin >> x;
    	int n=x;int cnt=0;int p=0;
    	for(int i=2;i<=sqrt(x);i++)
    	{
    		cnt=0;
    		while(n%i==0){
    			n/=i;cnt++;
    		}
    		if(n!=1) {
    			continue;
    		}else{
    			p=i;    //i为底数
    			break;
    		}
    	}				//p为最小底数 cnt为最大幂次	
    	for(int i=1;i<=cnt;i++){
    		if(cnt%i==0){
    			cun[++k]=i;
    			for(int j=1;j<=sqrt(x);j++){
    				if(ksm(j,i)==x){
    					s[k]=j;
    					break;
    				}
    			}
    		}
    	}
    	cout << x << '\n';
    	cout << "=" << x << "^" << 1 << '\n';
    	for(int i=2;i<=k;i++){
    	cout << "=" << s[i] << "^" << cun[i] << '\n';	
    	}	
    	return 0;
    //}
    
    • 1

    信息

    ID
    1075
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    78
    已通过
    12
    上传者