30分7个mle求调
查看原帖
30分7个mle求调
1305491
dsfine楼主2024/8/23 14:44

代码:

#include <bits/stdc++.h>
using namespace std;
long long a[100000005],t=2;
int main()
{
    long long n,cnt=1;
    cin>>n;
    long long c=n;
    for(int j=2;j<=n;j++){
        if(a[j]!=1){
            t=j;
            for(int k=t+1;k<=n;k++){
                if(k%t==0){
                    a[k]=21474836;
                }
            }
        }
    }
    for(int i=2;i<=c;i++){
        if(a[i]!=21474836&&n%i==0){
            n=n/i;
            a[i]++;
        }
    }
    for(int i=1;i<=c;i++){
        if(a[i]%2==1){
            cnt*=i;
        }
    }
    if(cnt>c){
        cout<<c;
    }else{
        cout<<cnt;
    }
    return 0;
}
2024/8/23 14:44
加载中...