已知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);
}
相关推荐
闻闻不会编程28 分钟前
74. 搜索二维矩阵 (力扣)
算法·leetcode·矩阵
弥彦_30 分钟前
线段树刷题记录
数据结构·c++·算法
凤年徐1 小时前
【数据结构初阶】顺序表的应用
c语言·开发语言·数据结构·c++·笔记·算法·顺序表
智驱力人工智能1 小时前
高密爆炸警钟长鸣:AI为化工安全戴上“智能护盾”
人工智能·算法·安全·重构·边缘计算·高密爆炸·高密化工厂
海码0071 小时前
【Hot 100】70. 爬楼梯
数据结构·c++·算法·leetcode·动态规划·hot100
Orz_Sponge_Bob2 小时前
6月2日上午思维训练题解
算法
YGGP2 小时前
动态规划之网格图模型(二)
算法·动态规划
Matlab仿真实验室4 小时前
基于Matlab实现LDA算法
开发语言·算法·matlab
@蓝莓果粒茶4 小时前
LeetCode第244题_最短单词距离II
c++·笔记·学习·算法·leetcode·职场和发展·c#