このコードは整数の最小の約数を与えます。しかし、問題は平方根を計算する必要があることです。平方根を明示的に計算する必要がないようにする方法はありますか?
int d,r,n;
scanf("%d",&n);
if(n%2==0)
{
printf("2 is ans");
}
else
{
r=sqrt(n);
d=3;
while((n%d!=0)&&d<r)
{
d=d+2;
}
if(n%d==0)
printf("ans is %d",d);
else
printf("ans is 1");
}