C语言-完全平方数

Python026

C语言-完全平方数,第1张

①要求

完全平方数:开方后结果是整数的数。

求出10000以内,加100和268都是完全平方数的整数。

②定义函数

#include<stdio.h>

#include<math.h>

int fun(long n)

{int s1,s2

/*平方根函数sqrt。*/

s1=sqrt((double)(n+100))

/*将n+100开方后的值,赋值给整型s1,自动舍去小数位。*/

s2=sqrt((double)(n+268))

/*将n+268开方后的值,赋值给整型s2,自动舍去小数位。*/

if(s1==sqrt((double)(n+100))

&&s2==sqrt((double)(n+268))

/*判断开方后是否是整数:

如果sqrt开方后的值是小数,

就不等于取整后的s1和s2,也就不是完全平方数。

如果sqrt开方后的值是整数,

就等于取整后的s1和s2,也就是完全平方数。

*/

return 1

else return 0

}

~

③主函数

int main()

{long i

for(i=1i<10000i++)

{if(fun(i))printf("%1d\n",i)}

return 0

}

c语言中判断一个数是完全平方数,可以通过判断其平方根是否为整数来判断,平方根若为整数,则为完全平方数,否则不是。

# include <stdio.h>

# include <math.h>

int main( void )

{

for ( int i=1i<=1000i++ )

{

if ( sqrt(i+100) == (int)sqrt( i+100 ) )

if ( sqrt( i+100 + 168 ) == (int)sqrt(i+100+168) )

printf("%d\n", i )

}

return 0

}

完全平方数,即用一个整数乘以自己例如1*1,2*2,3*3,等等,依此类推。若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。完全平方数是非负数。而一个完全平方数的项有两个。注意不要与完全平方式所混淆。

一、数学概念:

完全平方即用一个整数乘以自己例如1*1,2*2,3*3等,依此类推。若一个数

能表示成某个整数的平方的形式,则称这个数为完全平方数。

二、算法设计:

根据概念,只要存在一个整数m,使得m*m的值为n,那么n就是完全平方数了。

于是只需要对可能的m进行遍历,即可得到n是否为完全平方数的结论了。

三、参考代码:

#include <stdio.h>

int main()

{

    int n,m

    scanf("%d",&n)//输入n值。

    m = 1 //初始为最小值。

    while(m*m<n) m++//m自加,一直到m*m>=n时退出循环。

    //此时有两种可能,一种m*m与n相等,则为完全平方数另一种则是m*m>n, 此时不存在使得m*m=n成立的m值,n不是完全平方数。

    if(m*m==n) printf("%d 是完全平方数\n", n)

    else printf("%d 不是完全平方数\n", n)//输出结果。

    return 0

}