首页 > 其他分享 >一个非完全平方数应该乘上什么数才能是完全平方数?

一个非完全平方数应该乘上什么数才能是完全平方数?

时间:2024-05-27 21:22:48浏览次数:20  
标签:平方 int res 基准 完全 才能 质因数

这是我做 AtCoder 的时候发现的一个问题,有感而发:
首先,对于任何一个数,我们都能给它做质因数分解,也就是把他们分成一个个质因数的平方乘
现在考虑一个非完全平方数,就假如它分解质因数之后的形式为:

253457

那么我们把他的平方数进行模 \(2\) 操作之后就变成了:
213052=10
显然,原来的数乘上这个模之后的数一定为一个完全平方数,这里称之为基准数,因为没有比它更小的了,同样的还可去乘基准数的相关平方 \(+2\) 的数
那么就很好解决了
我们直接把这个数分解平方质因数,然后会得到一个基准数,那么对于其他的数来说,如果两数的基准数相同,那么相乘之后一定会是一个完全平方数:
参考代码:

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e6 + 10, mod = 1e9 + 7;
signed main()
{
    std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    int n; cin >> n;
    vector<int> a(N + 1);
    int res = 0;
    for (int i = 1; i <= n; i++)
    {
        int x;
        cin >> x;
        if (x == 0)
        {
            res += i - 1; a[0]++;
        }
        else
        {
            for (int j = 2; j * j <= x; j++)
            {
                int k = j * j;
                while (!(x % k)) x /= k;
            }
            res += a[0] + a[x];
            a[x]++;
        }
    }
    cout << res;
    return 0;
}

标签:平方,int,res,基准,完全,才能,质因数
From: https://www.cnblogs.com/o-Sakurajimamai-o/p/18216546

相关文章

  • android studio2024最新详解(完全小白)安装-运行第一个程序
    前面我用2023最新版本的,死活就卡在引入依赖那里卡了两天,俺的崩溃谁知啊!! 后面我就换了个思维,看着网上大多的教程都是基于2022或者2020的,我就找了个看起来非常详细的视频,里面的是2020的,所以我就下载了2020。  有点小伙伴可能会找不到androidstudio的过往版本,这里我就直......
  • 算法训练 | 二叉树Part3 | 104.二叉树的最大深度、111.二叉树的最小深度、222.完全二
    目录104.二叉树的最大深度递归法⭐迭代法111.二叉树的最小深度递归法⭐迭代法222.完全二叉树的节点个数普通二叉树完全二叉树嵌入式学习分享个人主页:Orion嵌入式随想录-小红书(xiaohongshu.com)104.二叉树的最大深度题目链接:104.二叉树的最大深度-力扣(Le......
  • Meme币总市值突破630亿美元 以太坊ETF获批意味着代币化资产“完全安全”
    近日,数字货币市场再次掀起轩然大波。一方面,Meme币总市值突破了630亿美元,令人瞠目结舌;另一方面,以太坊ETF的获批也引发了市场的广泛关注,被视为代币化资产的“完全安全”标志。Meme币总市值飙升Meme币,作为数字货币市场的一种特殊品类,一直以其独特的特性和高度的市场波动性吸引......
  • 揭秘刷单兼职的套路,选择靠谱平台才能赢在起跑线
    在互联网飞速发展的今天,各种网络兼职层出不穷,其中刷单兼职因其看似简单、收益快的特点,吸引了不少人的眼球。然而,这个领域也充满了各种陷阱和风险。今天,我们就来一起揭秘刷单兼职的套路,帮助大家在选择兼职平台时避开风险,赢在起跑线。一、刷单兼职的常见形式刷单兼职通常是通过......
  • 代码随想录算法训练营第十六天 | 104.二叉树的最大深度、559.n叉树的最大深度、111.二
    104.二叉树的最大深度题目链接:https://leetcode.cn/problems/maximum-depth-of-binary-tree/文档讲解:https://programmercarl.com/0104.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%9C%80%E5%A4%A7%E6%B7%B1%E5%BA%A6.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE......
  • Vue3实战笔记(40)—组件逻辑复用:自定义Hooks的完全指南
    文章目录前言一、状态管理二、副作用处理三、生命周期钩子总结前言自定义Hooks是Vue3中的一个重要特性,它允许您创建可重用的函数,以便在组件之间共享状态和逻辑。以下是一些关于自定义Hooks的常见用法。一、状态管理使用reactive或ref来创建响应式数据,并在组件中......
  • 【刷题笔记Day2】数组|977.有序数组的平方、209. 长度最小的子数组、59.螺旋矩阵II
    文章目录977.有序数组的平方解题思路遇到的问题及解决方案209.长度最小的子数组解题思路遇到的问题及解决方案59.螺旋矩阵II解题思路遇到的问题及解决方案总结977.有序数组的平方题目描述:给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新......
  • VMware上基于centos系统完全分布式Hadoop集群的搭建详解
    目录1.centos系统的环境的准备1.1.样本机的配置1.1.1.准备一个centos的虚拟机1.1.2.关闭系统的防火墙1.1.3.配置centos系统的IP1.1.4.修改主机名称1.1.5. 配置hosts映射文件1.2.jdk的安装1.2.1.jdk的下载1.2.2.虚拟机自带jdk的删除1.2.3.将jdk上传到虚拟机中1.2.4......
  • 代码随想录算法训练营第一天 | 977.有序数组的平方;
    代码随想录算法训练营第一天|977.有序数组的平方;977题链接:https://leetcode.cn/problems/squares-of-a-sorted-array/代码随想录链接:https://programmercarl.com/0977.有序数组的平方.html#思路209题链接:https://leetcode.cn/problems/minimum-size-subarray-sum/submission......
  • 有序数组的平方
    leetcode:977题需求:给定一个有序数组,返回数组所有元素平方之后的结果,要求平方后的数组依然有序。注意:数组是有负数的。例:[-5,1,2,3]暴力解法:先平方,后使用排序算法排序。双指针思路:根据数组可以看出<-[-5,1,2,3]->,平方后的数组的大小是从两边往中间逐渐缩小的。所以......