Golang 002. 求质因数的个数

简介: Golang 002. 求质因数的个数

【基础入门题】Golang 002. 求质因数的个数

求一个正整数 n 的所有质因数中不相同的个数。

Factor(6) = 2; Factor(7) = 1; Factor(1260) = 4


方法一:

package main
import "fmt"
func Factor(number int) int {
  result := 0
  for i, j := 2, number; i <= number; i++ {
    if j%i == 0 {
      result++
      for j%i == 0 {
        j /= i
      }
    }
  }
  return result
}
func main() {
  var nums = []int{6, 7, 1260}
  fmt.Println("循环方式一:")
  for i := 0; i < len(nums); i++ {
    fmt.Printf("%d的质因数有:%d个。\n", nums[i], Factor(nums[i]))
  }
  fmt.Println("\n循环方式二:")
  for _, val := range nums {
    fmt.Printf("%d的质因数有:%d个。\n", val, Factor(val))
  }
}




方法二:

package main
import "fmt"
func isPrime(i int) bool {
  result := true
  for j := 2; j < i; j++ {
    if i%j == 0 {
      result = false
      break
    }
  }
  return result
}
func Factor(number int) int {
  result := 0
  for i := 2; i <= number; i++ {
    if number%i == 0 && isPrime(i) {
      result++
    }
  }
  return result
}
func main() {
  var nums = [3]int{6, 7, 1260}
  for _, val := range nums {
    fmt.Printf("%d的质因数有:%d个。\n", val, Factor(val))
  }
}
目录
相关文章
|
存储 缓存 算法
Streaming System 第一章:Streaming 101
简介 Streaming101起源于在O'really上发表的两篇博客,原文如下:https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-102其中对流式计算的设计理念做了非常透彻的介绍。
10697 0
|
应用服务中间件 Linux 网络安全
Linux 安装 Nginx 并配置为系统服务(超详细)
Linux 安装 Nginx 并配置为系统服务(超详细)
|
NoSQL 数据可视化 关系型数据库
推荐几个好用的redis可视化工具
推荐几个好用的redis可视化工具
18088 1
|
消息中间件 监控 物联网
流处理系统
流处理系统
206 1
分布式事务的两阶段提交和三阶段提交分别有什么优缺点?
【9月更文挑战第9天】两阶段提交(2PC)和三阶段提交(3PC)是解决分布式系统事务一致性的机制。2PC实现简单,保证强一致性,但存在同步阻塞、单点故障和数据不一致风险。3PC通过引入超时机制减少阻塞时间,降低单点故障影响,但复杂性增加,仍可能数据不一致,并有额外性能开销。
597 9
|
存储 缓存 NoSQL
Redis从入门到精通之底层数据结构SDS(简单动态字符串)详解
SDS是Redis中的一种字符串类型,它是一种二进制安全的字符串,由简单动态字符串(SDS)实现。SDS支持多种数据结构,其中字符串(String)是最常用的一种数据结构之一。SDS的优点在于它可以避免C字符串常见的问题,比如缓冲区溢出和内存泄露等。SDS的常数复杂度获取字符串长度和杜绝缓冲区溢出可以避免使用strlen和strcat函数时的一些问题。同时,SDS的空间预分配和惰性空间释放两种策略可以减少修改字符串的内存重新分配次数。SDS也是二进制安全的,因为它不是以空字符串来判断字符串是否结束,而是以len属性表示的长度来判断字符串是否结束。SDS还兼容部分C字符串函数
3764 84
|
JSON 安全 Go
Go语言中使用JWT鉴权、Token刷新完整示例,拿去直接用!
本文介绍了如何在 Go 语言中使用 Gin 框架实现 JWT 用户认证和安全保护。JWT(JSON Web Token)是一种轻量、高效的认证与授权解决方案,特别适合微服务架构。文章详细讲解了 JWT 的基本概念、结构以及如何在 Gin 中生成、解析和刷新 JWT。通过示例代码,展示了如何在实际项目中应用 JWT,确保用户身份验证和数据安全。完整代码可在 GitHub 仓库中查看。
2288 1
|
NoSQL 前端开发 Redis
Windows 下安装和配置 Redis (图文教程)
Windows 下安装和配置 Redis (图文教程)
|
Linux Shell Go
探索 Linux 命名空间和控制组:实现资源隔离与管理的双重利器
本文深入介绍了 Linux 命名空间(Namespace)和控制组(Cgroups)的关键技术,并探讨了它们在现代系统管理和容器化部署中的重要性和实际应用。
640 0
探索 Linux 命名空间和控制组:实现资源隔离与管理的双重利器
|
Ubuntu 安全 网络协议

热门文章

最新文章