//这个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 位的。