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

【题解】最大平方因子

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

【题目描述】

给定一个整数 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;
}


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

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

    分享给朋友:

    相关文章

    【题解】车厢调度

    【题解】车厢调度

    【题目描述】有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合。假设从A方向驶来的火车有n节(n<=1000)。分别按照顺序编号为1,2,3,...n。假定在...

    【题解】转换字符串的最少操作次数

    【题目描述】给你一个字符串 s ,由 n 个字符组成,每个字符不是 'X' 就是 'O' ...

    【题解】大数取模

    【题目描述】求m%n。【输入描述】两个数,m和n。【输出描述】m模n的值。【样例输入】3【样例输出】2【数据范围】对于30%的数据, 1<m<10^18对于70%的数据, m>10^...

    【题解】老王赛马

    【题目描述】赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为“战国时期”。在魏国作官的孙膑,因为受到同僚庞涓的迫害,被齐国使臣救出后,到达齐国国都。 赛马是当时最受...

    【题解】直方图

    直方图(histogram.cpp)【题目描述】给定一个非负整数数组,统计里面每一个数的出现次数。我们只统计到数组里面最大的数。假设Fmax(Fmax<10000)是数组里最大的数,那么我们只统...

    求Π的值

    【题目描述】根据公式:arctanx(x)=x−x^3/3+x^5/5−x^7/7+…和π=6arctanx(1/√3).定义函数arctanx(x),求当最后一项小于10^(−6)时π的值。【输入描...