初级守护
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,f=0;
cin>>n;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
for(int j=2;j<=sqrt(n/i);j++){
if(n/i%j!=0){
f=1;
continue;
}
}
if(f==1){
cout<<n/i;
return 0;
}
else{
f=0;
continue;
}
}
}
cout<<n;
return 0;
}
哪里错了??
中级天翼
你还是先定义一个判断质数的函数,这样清晰点
然后,不用太复杂,你写的我看的有点晕
我是这样写的:
1.判断n是否为质数,如果是,输出n,return 0,否则,进入第二步
2.循环n-1到1如果n%i==0&&zs(i)==1输出i
😀
高级守护
加一个函数来判断质因数
int qe(int a)
{
if(a==1)return 0;
for(int i=2;i<=sqrt(a);i++)
{
if(a%i==0)
{
return 0;
}
}
return 1;
}