已知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);
}
相关推荐
普通网友13 分钟前
模板编译期机器学习
开发语言·c++·算法
普通网友15 分钟前
C++与机器学习框架
开发语言·c++·算法
普通网友15 分钟前
C++安全编程指南
开发语言·c++·算法
鱼骨不是鱼翅25 分钟前
力扣hot100----1day
python·算法·leetcode·职场和发展
2501_9412357329 分钟前
C++中的装饰器模式变体
开发语言·c++·算法
2501_9411112529 分钟前
基于C++的爬虫框架
开发语言·c++·算法
小欣加油31 分钟前
leetcode 429 N叉树的层序遍历
数据结构·c++·算法·leetcode·职场和发展
民乐团扒谱机32 分钟前
【元启发算法】SMA黏菌算法:当自然智慧走进代码世界
算法
Kuo-Teng1 小时前
LeetCode 142: Linked List Cycle II
java·算法·leetcode·链表·职场和发展
ada7_1 小时前
LeetCode(python)——73.矩阵置零
python·算法·leetcode·矩阵