由唯一分解定理
Problem Detail - H:.完全平方数 - 追梦算法网
#include
using namespace std;
int main(){
long long n,ans=1;
cin>>n;
for(int i=2;i*i<=n;++i){//++i比i++快
long long cnt=0;//每次都把cnt重置为0
while(n%i==0){
cnt++;//cnt记录能够被当前i整除次数,如果能整除2的倍数次就代表可以让n变小
n/=i;
}
if(cnt&1){//判断cnt是否为奇数
ans*=i;//如果为奇数代表ans需要乘上这个无法被完全平方除掉的数字
}
}
cout<
开始坚持每天至少一篇题解(我认为不是水题的题)
如果代码有问题,还请在评论区指正。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)