54 lines
642 B
C
54 lines
642 B
C
|
||||
|
|
#include "stdio.h"
|
|||
|
|
|
|||
|
|
int isSquare(unsigned integer){
|
|||
|
|
|
|||
|
|
if (integer==1 || integer==0)
|
|||
|
|
{
|
|||
|
|
return integer;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
int divider=2,result=integer/divider;
|
|||
|
|
|
|||
|
|
while(result>divider){
|
|||
|
|
|
|||
|
|
divider++;
|
|||
|
|
result = integer/divider;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (result!=divider)
|
|||
|
|
{
|
|||
|
|
return -1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return result;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
int main(int argc, char const *argv[])
|
|||
|
|
{
|
|||
|
|
// 243,1849(43),289(17), 64(8)
|
|||
|
|
|
|||
|
|
int a[] = {1849,144,243,289,64,1194877489};
|
|||
|
|
for (int i = 0; i < sizeof(a)/sizeof(int); ++i)
|
|||
|
|
{
|
|||
|
|
int ret = isSquare(a[i]);
|
|||
|
|
|
|||
|
|
if (ret==-1)
|
|||
|
|
{
|
|||
|
|
printf("%d 不是某个数的平方\n",a[i]);
|
|||
|
|
}else{
|
|||
|
|
|
|||
|
|
printf("%d 是 %d 的平方\n", a[i], ret);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|