当前位置:首页 > 题解目录 > 正文内容

【题解】最大平方因子

亿万年的星光2年前 (2024-07-23)题解目录2317

【题目描述】

给定一个整数 n,请找出 n 的最大平方因子。所谓平方因子,就是一个 n 的因子,且是一个完全平方数。最大平方因子就是 n 的所有平方因子中最大的数。

如 12的最大平方因子为 4,81 的最大平方因子为其本身,21 的最大平方因子为 1。

【输入描述】

单个整数表示 n。

【输出描述】

单个整数表示 n 的最大平方因子。

【样例输入1】

12

【样例输出1】

4

【样例输入2】

81

【样例输出2】

81

【样例输入3】

21

【样例输出3】

1

【数据范围】

  • 对于 50% 的数据,1≤n≤10000;

  • 对于 100% 的数据,1≤n≤10,000,000。


【题目分析】

注意完全平方因子的概念即可。完全平方因子,首先是因子,其次是完全平方数,最后是这些中最大的那个。


【参考代码】

#include <bits/stdc++.h>
using namespace std;
int main() {
	int n=0,ans=0;
	int t=0; //临时值
	cin >> n;
	for (int i = 1; i  <= n; i++) {
		if(n%i==0){
			//说明i是因数,
			t = sqrt(i);
			if(t*t==i){
				ans=t*t;  //一直成立,取最后一个
			}
		}
	}
	cout << ans << endl;
	return 0;
}


或者反着来,这样找最大的速度会快一些

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n=0,ans=0;
    int t=0; //临时值
    cin >> n;
    for (int i = n; i  >= 1; i--) {
        if(n%i==0){
            //说明i是因数,
            t = sqrt(i);
            if(t*t==i){
                ans=t*t;
                break;
            }
        }
    }
    cout << ans << endl;
    return 0;
}


扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

小苹果(apple)

【题目描述】小 Y 的桌子上放着n个苹果从左到右排成一列,编号为从1到n。小苞是小 Y 的好朋友,每天她都会从中拿走一些苹果。每天在拿的时候,小苞都是从左侧第1个苹果开始、每隔2个苹果拿走2个苹果。随...

【题解】网线主管

【题目描述】仙境的居民们决定举办一场程序设计区域赛。裁判委员会完全由自愿组成,他们承诺要组织一次史上最公正的比赛。他们决定将选手的电脑用星形拓扑结构连接在一起,即将它们全部连到一个单一的中心服务器。为...

糖果传递

题目描述有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。输入格式第一行一个正整数n≤1000000,表示小朋友的个数.接下来n行,每行一个整数ai,表...

【题解】放苹果(2)

【题目描述】把M个同样的苹果放在N个同样的盘子里,不允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。【输入】第一行是测试数据的数目t(0≤t≤20)。以...

【题解】均分蛋糕

【题解】均分蛋糕

【题目描述】小明的生日要到了!根据习俗,他需要将一些派分给大家。他有 N 个不同口味、不同大小的派。有 F 个朋友会来参加我的派对,每个人会拿到一块派(必须一个...

【题解】车辆管理

【题目描述】交通管理局长氓氓现在需要一个管理汽车的系统,每一辆汽车都有许多信息需要去记录。 首先,每一辆汽车都有一个独一无二的车牌号 S,车牌号由 7 个字符组成。 然后,对于每一辆车要记录它的排...