完全平方数:若一个整数n能表示成某个整数m的平方的形式,则称这个数为完全平方数。写一个程序判断输入的整数是不是完全平方数。

标题
完全平方数

类别
基本计算

时间限制
1S

内存限制
256Kb

问题描述
若一个整数n能表示成某个整数m的平方的形式,则称这个数为完全平方数。写一个程序判断输入的整数是不是完全平方数。

输入说明
输入数据为一个整数n,0<=n<10000000。

输出说明
如果n是完全平方数,则输出构成这个完全平方数的整数m,否则输出no。

输入样例
样例1:
144
样例2:
15

输出样例
样例1输出:
12
样例2输出:
no

 

P.S.这段代码又丑又笨,各位大佬如果有简洁美观的话欢迎分享哇!~~

 

#include <stdio.h>

int main() 
{
	int n;
	float i;
	scanf("%d", &n);
	for (i = 1; i <= n / 2 ; i++) 
	{
		if (n / i == i) 
		{
			printf("%.0f", i);
			break;
		}
	}
	if (n == 1 || n == 0)
		printf("%d", n);
	else if ( i > n / 2 )
		printf("no");
	return 0;
}
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下的程序判断输入整数是否为完全平方数: ``` import math n = int(input("请输入一个整数:")) m = int(math.sqrt(n)) if m * m == n: print(n, "是完全平方数") else: print(n, "不是完全平方数") ``` 程序中,首先使用 `input()` 函数获取用户输入整数,然后使用 `math.sqrt()` 函数计算这个整数平方根,将其转换为整数类型。接着,判断这个整数平方根的平方是否等于输入整数,如果相等,则输出“是完全平方数”,否则输出“不是完全平方数”。 ### 回答2: 判断一个数是否为完全平方数,可以使用循环逐个尝试每个可能的平方数,直到找到一个平方数等于该整数或者找到一个大于该整数平方数为止。具体实现可以使用二分查找算法提高效率。 下面是一个用 Python 语言编判断完全平方数程序示例: ```python def isPerfectSquare(n: int) -> bool: if n < 0: return False left, right = 0, n while left <= right: mid = (left + right) // 2 if mid * mid == n: return True elif mid * mid < n: left = mid + 1 else: right = mid - 1 return False ``` 该程序首先判断输入整数是否为非负数,如果是负数则不是完全平方数,直接返回 False。 然后使用二分查找算法在左右边界不断逼近的过程中,判断中间数的平方是否等于输入整数。如果等于,则返回 True。如果平方小于输入整数,则说明在右半部分继续查找。如果平方大于输入整数,则说明在左半部分继续查找。最终如果左右边界相遇时还没有找到平方等于输入整数,则返回 False。 使用该函数可以方便地判断任意一个整数是否为完全平方数,例如: ```python n = int(input("请输入一个整数:")) if isPerfectSquare(n): print(n, "是完全平方数") else: print(n, "不是完全平方数") ``` 输出结果示例: ``` 请输入一个整数:16 16 是完全平方数输入一个整数:35 35 不是完全平方数 ``` ### 回答3: 题目要求判断一个整数是否为完全平方数。我们可以知道,如果一个整数n是某个整数m的平方,那么m在sqrt(n)以内。所以,我们可以考虑遍历sqrt(n)内的所有整数m,判断m*m是否等于n,如果有一个m使得m*m等于n,那么n就是完全平方数。 下面是一个使用Python语言实现的代码: ```python import math def is_perfect_square(n): for m in range(int(math.sqrt(n)) + 1): if m * m == n: return True return False # 测试代码 print(is_perfect_square(16)) # 输出True print(is_perfect_square(15)) # 输出False ``` 在上述代码中,我们定义了一个函数is_perfect_square(n),它接受一个整数n作为输入,并返回一个布尔值,表示n是否为完全平方数。这个函数的实现就是上述算法的具体代码。 我们可以通过测试代码来验证这个函数的正确性,可以看到,对于16,返回的结果是True,对于15,返回的结果是False,这符合我们的预期。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值