C语言漂亮数

Python022

C语言漂亮数,第1张

#include <stdio.h>

//这个beautiful函数把n分解成p1^a1 * p2 ^ a2 ...

//其中p1,p2。。。都是素数,a1,a2。。。是它们的幂

//比如120 = 2 ^ 3 * 3 ^ 1 * 5 ^ 1

//然后判断下是否所有的幂都是大于等于2的

int isBeautiful(int n)

{

int cnt, i

if (n % 2 == 0)

{

cnt = 0

while (n % 2 == 0)

{

n /= 2

cnt++

}

if (cnt <2)

{

return 0

}

}

for (i = 3i * i <= ni += 2)

{

if (n % i == 0)

{

cnt = 0

while (n % i == 0)

{

n /= i

cnt++

}

if (cnt <2)

{

return 0

}

}

}

if (n != 1)

{

return 0

}

return 1

}

int main()

{

int n

scanf("%d", &n)

if (isBeautiful(n))

{

printf("%d is beautiful number", n)

}

else

{

printf("%d is not a beautiful number", n)

}

return 0

}

就是常说的小数,浮点是意思就是数字中有个漂浮的点,这个点就是常说的小数点

1、C语言中均支持两种浮点数,float和double。

其中double的精度,和表示范围比float要大。

另外,部分编译器支持更大精度的long double,但不是所有的编译器都支持。

以上为三种浮点数的类型。在定义的时候,需要以

TYPE var=init_value

的方式定义,功能为定义一个名字为var,类型为TYPE的变量,并赋值初始值为init_value。

其中=init_value部分可以省略。

2、比如定义一个float类型的浮点变量为

float f

定义一个类型为double的浮点型变量,并初始化值为1.234,写作

double d = 1.234

凭精确度

C 标准要求 float 类型至少要能精确表示到小数点后6位。float 一般是 32 位的。

C 标准规定double 类型的整数部分的最小表示范围和 float 一样,但是它要求 double 类型的小数部分至少要能精确到小数点后 10 位。double 通常是 64 位的。