已知n找最小正整数x使n*x为一个平方数

已知正整数n,求最小的正整数x,使得n*x是一个平方数。例如n=12,则最小的x是3,n*x为36是一个平方数。

输入

仅一个正整数n,n < 231

输出

输出最小的正整数x。

样例输入 Copy
复制代码
4
样例输出 Copy
复制代码
1
cs 复制代码
#include <stdio.h>
#include<math.h>
int main(void)
{
	int n;
	scanf("%d",&n);
	int x;
	for(int i=sqrt(n);i>0;i--)
	{
		if(n%(i*i)==0)
		{
			x=n/(i*i);
			break;
		}
	}
	printf("%d",x);
}
相关推荐
longlongzihan2 小时前
LeetCode 56合并区间:排序与贪心
c++·算法·leetcode
学术小李3 小时前
cudaMalloc第一个参数为何是指针的指针
算法
kukubuzai3 小时前
二分查找系列一
数据结构·算法·leetcode
老歌老听老掉牙3 小时前
动态规划:从递归到最优决策的算法艺术
算法·动态规划
朔北之忘 Clancy3 小时前
2024 CSP-J 第二轮真题解析
c++·算法·青少年编程·noip·csp·信奥赛·noi
小七在进步3 小时前
类和对象(五)
java·开发语言·算法
就叫年华吧丶3 小时前
长文档点目录定位总是不准?一个 content-visibility + 平滑滚动引发的连环坑(Vue3 实战)
前端·javascript·算法·vue
FPGA信号处理4 小时前
【信号检测与估计】第四节课:非高斯噪声下的 BLUE、极大似然与 EM 算法
人工智能·算法·机器学习
.道阻且长.4 小时前
C++ 11:可变参数模板
前端·c++·算法