分析
对于一个正整数,可以表示成
,n从一个较大的数开始自减。如果b=1,即n是A的平方根,那么直接输出a(=n),否则输出
。另用一个tag来表示A能不能化简,不能化简则以sqrt(A)来输出。
代码
#include <stdio.h>
int main()
{
int x, tag = 0;
int a, b, n;
scanf("%d", &x);
for (n = 1000; n > 1; n--)
{
if (x % (n * n) == 0)
{
a = n;
b = x / (n * n);
tag = 1;
break;
}
}
if (tag == 1)
{
if (b == 1)
printf("%d\n", a);
else
printf("%d*%d\n", a, b);
}
if (tag == 0)
printf("sqrt(%d)", x);
return 0;
}
结果
![]()
该代码实现了一个寻找正整数平方根的过程,从1000开始递减检查每个数,若找到n*n为x的因子,则输出n和b(b=x/(n*n)),若b为1则n即为平方根;否则输出n和b的乘积。若未找到合适因子,输出sqrt(x)。

2224

被折叠的 条评论
为什么被折叠?



