pascal语言:
if (round(sqrt(x))*(round(sqrt(x))=x
then write('it is')
else write('it is not');
把这个数开根号,再取整,再平方,若等于原数,则是;反之,则不是。
其实和你的那个方法是差不多的,已经是最简了,时间复杂度为0.
我的c语言编程是:
#include "math.h"
main()
{
int a,x;
printf("please input a number:\n");
scanf("%d",&x);
a=sqrt(x);
if (x==a*a)
printf("This is a FULL number");
else
printf("This is not a FULL number");
getch();
}
if sqrt(x) == a then
print 'it is'
else
print 'it is not'
你这是什么语言来的,这样的语法.
完全平方数是这样一种数:它可以写成一个正整数的平方.例如,36是6×6,49是7×7.
从1开始的n个奇数的和是一个完全平方数,n2―即1+3+5+7+…+(2n-1)=n2,例如1+3+5+7+9=25=52.每一个完全平方数的末位数是0,1,4,5,6,或9
每一个完全平方数要末能被3整除,要末减去1能被3整除.每一个完全平方数要末能被4整除,要末减去1能被4整除.
每一个完全平方数要末能被5整除,要末加上1或减去1能被5整除.