算法:
有一个整数值
比如,42,它的被除数可以是 1, 2, 3, 6, 7, 14, 21, 42。
它的被除数元素的平方为:1, 4, 9, 36, 49, 196, 441, 1764.
这些平方后的值相加为2500。
而2500,是可被整数平方的,即为整数50的平方。这就是我们要找的值。

若给出整数值在[m,n]区间,我们可以得到这样的序列:
list_squared(1, 250) –> [[1, 1], [42, 2500], [246, 84100]]
list_squared(42, 250) –> [[42, 2500], [246, 84100]]
请写出以上的算法。

fn list_squared(m: u64, n: u64) -> Vec<(u64, u64)> {let temp: Vec<Vec<u64>> = (m..n + 1).map(|x| (1..x + 1).filter(|y| x % y == 0).collect::<Vec<_>>()).filter(|x| {let temp: u64 = x.into_iter().map(|y| y.pow(2)).sum();is_sqrt_ok(temp)}).collect();let tp: Vec<(u64, u64)> = temp.into_iter().map(|x| {let lst = x.last().unwrap();let s = x.iter().map(|x| x.pow(2)).sum();(*lst, s)}).collect();tp
}
fn is_sqrt_ok(data: u64) -> bool {((data as f64).sqrt() as u64).pow(2) == data
}

或简化一下:

fn list_squared(m: u64, n: u64) -> Vec<(u64, u64)> {(m..n + 1).map(|x| (1..x + 1).filter(|y| x % y == 0).collect::<Vec<_>>()).filter(|x| {let temp: u64 = x.into_iter().map(|y| y.pow(2)).sum();is_sqrt_ok(temp)}).map(|x| {let lst = x.last().unwrap();let s = x.iter().map(|x| x.pow(2)).sum();(*lst, s)}).collect()
}

Rust: Integers: Recreation One相关推荐

  1. rust 编程入门_面向初学者的Rust –最受欢迎的编程语言入门

    rust 编程入门 Rust has been voted Stack Overflow's most loved programming language for five years in a r ...

  2. Node.js 开发者的 Rust 入门指南

    作者 | Florian GOTO 译者 | 弯月    责编 | 欧阳姝黎 出品 | CSDN(ID:CSDNnews) 以下为译文: 随着WebAssembly的进步,如果你想在JavaScrip ...

  3. Programming Rust Fast, Safe Systems Development(译) 错误处理(第七章)

    I knew if I stayed around long enough, something like this would happen. -George Bernard Shaw on dyi ...

  4. Rust模板引擎Tera中文英文对照官方文档

    来嘞早不如来的巧,刚翻译好,你就来啦!翻译完成 要开发CMS(内容管理系统)得有个模板引擎,Tera是使用Rust编写的模板引擎,语法跟JinJa2很像. 引入Tera 要使用Tera只需要在 Car ...

  5. rust最美建筑_美丽心灵16_ If I Rest, I Rust

    16 If I Rest, I Rust 16 如果我休息,我就会生锈 The significant inscription found on an old key - "If I res ...

  6. rust最美建筑_白领美丽英文诵典365 -Day 257 If I Rest I Rust

    感谢大耳朵网友"mild2"提供的听力原文 If I Rest , I Rust The significant inscription found on an old key-& ...

  7. rust python_用于Python程序员的Rust

    rust python Now that Rust 1.0 is out and quite stable, I thought it might be interesting to write an ...

  8. 小白学Rust(一):Rust产生随机数

    先按本人教程如何利用科大源提速Cargo和Rust做好相关配置.然后在linux Bash下执行: cargo new random --bin 这会在当前目录创建一个random文件夹,然后修改sr ...

  9. Rust和C / C ++的跨语言链接时间优化LTO

    Rust和C / C ++的跨语言链接时间优化LTO 链接时间优化(LTO)是LLVM实施整个程序优化的方法.跨语言LTO是Rust编译器中的一项新功能,使LLVM的链接时间优化可以在混合的C / C ...

  10. 10玩rust_有趣的 Rust 类型系统: Trait

    也许你已经学习了标准库提供的 String 类型,这是一个 UTF-8 编码的可增长字符串.该类型的结构为: pub struct String {vec: Vec<u8>, } UTF- ...

最新文章

  1. 使用文件操作函数实现:文件的复制功能。
  2. vim编辑环境设定[Linux]
  3. RSA公钥格式PKCS#1,PKCS#8互转(微信获取RSA加密公钥)
  4. 面向对象的继承关系体现在数据结构上时,如何表示
  5. 阿里云-变更备案信息记
  6. scala入门示例helloworld及idea中集成Scala库
  7. 牛客网【每日一题】4月22日 K-th Number
  8. 【动态规划】大厅安排 (ssl 1212)
  9. Swift中文教程(二)基本运算符
  10. 面试题:为什么局部变量不赋初始值报错
  11. 数据库连接,实现增删改查操作具体步骤(全)
  12. struts2的国际化(即实现网站整体中英文切换)实例
  13. Java套接字Socket编程--TCP参数
  14. 界面的创建(高仿QQ登入界面)
  15. CAD:计算三角形的外接圆圆心
  16. C++:error: passing ‘const string’ as ‘this’ argument discards qualifiers [-fpermissive]
  17. 今天来聊聊CAD的“外挂”
  18. C语言strtok()函数详解
  19. keil cannot reset target shutting 新解决办法
  20. 游戏分类与热点探索——【作业1】

热门文章

  1. eclipse 批量 查询 替换
  2. 利用权限设置来阻止程序运行
  3. 互联网产品需求管理思考——统一需求管理
  4. #781 – 多个变换执行的顺序问题(Transform Order Matters)
  5. webpack插件配置(二)- HtmlWebpackPlugin
  6. 使用python调用shell判断当前进程是否存在
  7. 【BZOJ-4556】字符串 后缀数组+二分+主席树 / 后缀自动机+线段树合并+二分
  8. (转) java 通过 jdbc 链接 ms sql server 中出现 no suitable driver for ...
  9. ASP.NET Core真实管道详解[1]:中间件是个什么东西?
  10. 支付顺序--微信支付到公司账户--待出票