蓝桥杯-2/14天-完全平方数【另类思路】

简介: 蓝桥杯-2/14天-完全平方数【另类思路】
蓝桥杯中一些题本身比较难,我们可以换种思路,能拿多少拿多少,比如这道题,拿个一半的分数也不错

题目

问题描述

一个整数 aa 是一个完全平方数, 是指它是某一个整数的平方, 即存在一个 整数 bb, 使得 a=b^2a=b2

给定一个正整数 nn, 请找到最小的正整数 xx, 使得它们的乘积是一个完全平 方数。

输入格式

输入一行包含一个正整数 nn

输出格式

输出找到的最小的正整数 xx

样例输入 1

12

样例输出 1

3

样例输入 2

15

样例输出 2

15

运行限制

最大运行时间:1s

最大运行内存: 256M

思路

看了一圈大佬的答案实在看不懂,有点神奇,但比赛不会做我们也可以用暴力累加,多少拿点分

我的笨鸟思路:

完全平方数开根一定是一个整数,所以,我们可以把它当做字符串来思考,判断开根后的数的小数点后的位数,如果<=1(因为比如100,用Math.sqrt(100)=10.0)返回的结果小数点后只有1位,而Math.sqrt(3)这种数开根后就是一长串了,所以只要字符串中小数点后只有一位,那肯定就是答案

因为Math.sqrt()的结果是一个浮点数,所以我们可以用将其转为String,然后用split()方法,参数是一个正则表达式,也简单,就是"\\.",因为小数点‘.’是特殊字符,所以需要转义字符,split("\\.")的意思就是以“.”做分隔的标志,把小数点前后分隔开来返回一个String数组,我们只需要判断小数点后面的那个字符串就好

代码

import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
    public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
       long  n = input.nextLong();
        System.out.println(minP(n));
    }
    public static long minP(long num){
        double n = Math.round(Math.sqrt(num));//3
        long i=2;
        if (Math.sqrt(num) == n){
            return 1;
        }else {//能被整除说明找到最小
            while(!ifZhengChu(Math.sqrt(num*i)+"")){
                i++;
            }
        }
        return i;
    }
    //判断是不是整数
    public static boolean ifZhengChu(String str){
        String[] strings = str.split("\\.");
        String check = strings[1];
        if (check.length()<=1){
            return true;
        }else {
            return false;
        }
    }
}


相关文章
|
5月前
牛客刷题之数学基础-快速幂
牛客刷题之数学基础-快速幂
35 0
|
1月前
每日一题(珠玑妙算,两数之和)
每日一题(珠玑妙算,两数之和)
20 1
|
3月前
蓝桥备战--分糖果OJ2928 贪心 分类讨论
蓝桥备战--分糖果OJ2928 贪心 分类讨论
33 0
|
8月前
|
算法
[算法刷题题解笔记] 洛谷 P1011 [NOIP1998 提高组] 车站 [数学|斐波那契|推导]
[算法刷题题解笔记] 洛谷 P1011 [NOIP1998 提高组] 车站 [数学|斐波那契|推导]
|
5月前
|
算法
代码随想录算法训练营第七天 | LeetCode 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和
代码随想录算法训练营第七天 | LeetCode 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和
24 0
|
5月前
|
Python
牛客刷题之数学基础-约数
牛客刷题之数学基础-约数
23 0
|
11月前
|
机器学习/深度学习
蓝桥杯-2/14天-完全平方数【另类思路】
蓝桥杯中一些题本身比较难,我们可以换种思路,能拿多少拿多少,比如这道题,拿个一半的分数也不错
|
机器学习/深度学习 算法
【第十五届蓝桥杯备赛(bushi,写文凑个数)】蓝桥OJ---长草
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 BFS Flood Fill算法
147 0
|
算法
【每日挠头算法题】Acwing 756. 蛇形矩阵 —— 巧妙解法
【每日挠头算法题】Acwing 756. 蛇形矩阵 —— 巧妙解法
77 0
【每日挠头算法题】Acwing 756. 蛇形矩阵 —— 巧妙解法
蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:5.菲波那切数列最大公约数
蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:5.菲波那切数列最大公约数
56 0
蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:5.菲波那切数列最大公约数

热门文章

最新文章