@[Li_Yichen](/user/930325) 求助我的代码感觉没问题呀
```#include<stdio.h>
#include<math.h>
int judge(int n);
int main()
{
long long n;
scanf("%d",&n);
int m;
for( m=2;m<=sqrt(n);m++)
{
if(judge(m)&&judge(n/m)) break;
}
printf("%d",n/m);
return 0;
}
int judge(int n)
{
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
return 0;
}
return 1;
}
```
by My3211215504 @ 2024-03-17 17:42:29
@[My3211215504](/user/962476) 要保证枚举的m是n的因数,加一个判断if(n%m==0)就可以啦
```cpp
#include<math.h>
int judge(int n);
int main()
{
long long n;
scanf("%d",&n);
int m;
for( m=2;m<=sqrt(n);m++)
{
if(judge(m)&&judge(n/m)&&n%m==0) break;
}
printf("%d",n/m);
return 0;
}
int judge(int n)
{
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
return 0;
}
return 1;
}
```
by Li_Yichen @ 2024-03-17 19:25:58