首页 > 其他分享 >【牛客刷题】HJ6 质数因子

【牛客刷题】HJ6 质数因子

时间:2023-02-13 13:13:42浏览次数:61  
标签:HJ6 质数 牛客 因子 main fmt math

题目链接

这道题本身更多的是考察如何计算一个数的质数因子,更像是一道数学题,用到了循环的方法:

package main

import (
	"fmt"
	"math"
)

func main() {
	a := 0
	fmt.Scan(&a)
	end := math.Sqrt(float64(a))
	for i := 2; i <= int(end); i++ {
		for a%i == 0 {
			fmt.Printf("%d ", i)
			a /= i
		}
		if a == 1 {
			break
		}
	}
	if a != 1 {
		fmt.Printf("%d", a)
	}
}

任何一个数,其质数因子都不会大于其平方根,因此可以利用平方根来作为循环的结束条件,减少运算量。

标签:HJ6,质数,牛客,因子,main,fmt,math
From: https://www.cnblogs.com/wingsless/p/17115977.html

相关文章

  • 【牛客刷题】HJ5 进制转换
    题目链接基本上能用最简单代码实现的,就不要考虑的太复杂:packagemainimport"fmt"funcmain(){ a:=0 fmt.Scanf("0x%x",&a) fmt.Printf("%d",a)}......
  • 【牛客刷题】HJ4 字符串分隔
    题目链接这个题目本身基本上是对语言熟悉程度的考察,没有什么别的逻辑可言:packagemainimport( "fmt" "strings")funcmain(){ varastring fmt.Scan(&a) f......
  • 【牛客刷题】HJ3 明明的随机数
    题目链接这题有两个要编码解决的问题,首先是去重,其次是排序。最开始想着就用Java的TreeSet解决了,简单好用,去重排序都一并解决了,编码只需要考虑input的逻辑就可以,代码如下......
  • C语言:判断质数方法集合
    #include<stdio.h>intmain(){intm,i,count=0;//定义一个正整数m,因子i,因子计数count,刚开始因子为0;printf("请输入一个正整数:\n");scanf("%d",&m);......
  • 「AcWing学习记录」质数
    AcWing866.试除法判定质数原题链接时间复杂度\(O(\sqrt{n})\)\[d|n\implies\cfrac{n}{d}|n\]\[d\leq\cfrac{n}{d}\impliesd^2\leqn\impliesd\leq\sqrt{n}\]#inc......
  • C语言:输出1-1000间所有质数,一行10个输出
    #include<stdio.h>//键盘输入任意整数,判断其是否为质数intpdzs(intn){inta;if(n==1)return0;for(a=2;a<n;a++)if(n%a==0)return0;......
  • c语言填空:用函数判断是否为质数
    #include<stdio.h>//键盘输入任意整数,判断其是否为质数intpdzs(intn){inta;for(a=2;a<n;a++)if(n%2==0)【1】;【2】;}main(){int......
  • 【牛客刷题】BM50 两数之和
    本题的链接:BM50两数之和最初拿到这个题目首先想到的就是两个指针,然后向后遍历,于是写出来的代码也简明易懂:packagemain/****@paramnumbersint整型一维数组*......
  • 2023牛客寒假算法基础集训营5 A-L
    比赛链接A题解知识点:前缀和,二分。找到小于等于\(x\)的最后一个物品,往前取\(k\)个即可,用前缀和查询。时间复杂度\(O(n+q\logn)\)空间复杂度\(O(n)\)代码#i......
  • POJ 1730 Perfect Pth Powers 两种方法(质数分解+pow枚举)
    PerfectPthPowersTimeLimit: 1000MS MemoryLimit: 10000KTotalSubmissions: 18756 Accepted: 4327DescriptionWesaythatxisaperfectsquareif,forsome......