[Swift]浙大漂亮女同学征婚问题

问题1:求乘积为7140229933的两个质数?

Solution:

 1 import Foundation
 2 class Solution {
 3     func findBeauty(_ number:Int, _ target: Int) -> String {
 4         //测试数组
 5         var primes = Set(2...number)
 6         //埃拉托色尼筛选法
 7         (2...Int(sqrt(Double(number)))).forEach {
 8             let _ = primes.subtract(stride(from: 2*$0, through: number, by: $0))
 9         }
10         //转换为Double
11         let nums:[Double] = Array(primes).map{Double($0)}
12         var table:[Double:Double] = [Double:Double]()
13         for (firstIndex, num) in nums.enumerated() {
14             let res: Double = Double(target) / Double(num)
15             //可选链接
16             if table[res] == nil
17             {
18                 table[num] = Double(firstIndex)
19             }
20             else
21             {
22                 //转换为Int
23                 let res:Int = Int(res)
24                 let num:Int = Int(num)
25                 print(res)
26                 print(num)
27                 let str:String = res > num ? (String(num) + String(res)) : String(res) + String(num)
28                 return "Lin" + str
29             }
30         }
31         return String()
32     }
33 }

点击:Playground测试

1 //测试
2 print(Solution().findBeauty(100000, 7140229933))
3 //Print 85229
4 //Print 83777
5 //Print Lin8377785229

剧本的故事结局:

问题二:求乘积为(6541367***)的两个质数?

 1 import Foundation
 2 class Solution {
 3     func findBeauty2(_ number:Int, _ target: Int) -> [Int] {
 4         var primes = Set(2...number)
 5         //埃拉托色尼筛选法
 6         (2...Int(sqrt(Double(number)))).forEach {
 7             let _ = primes.subtract(stride(from: 2*$0, through: number, by: $0))
 8         }
 9         let nums:[Int] = Array(primes).sorted()
10         //最大值
11         let minNum:Int = target * 1000
12         //最小值
13         let maxNum:Int = minNum + 999
14         //遍历数组
15         for i in 0..<nums.count - 1
16         {
17             let num1:Int = getOdd(maxNum,nums[i])
18             let num2:Int = getOdd(minNum,nums[i])
19             let num3:Int = num1 * nums[i]
20             //质数必须是奇数
21             if num1 == num2 && nums.contains(num1) && minNum == (num3 - num3 % 1000)
22             {
23                print(num3)
24                return([nums[i],num1])
25             }
26         }
27         return [-1,-1]
28     }
29
30     //质数必为奇数,获取奇数
31     func getOdd(_ num1:Int,_ num2:Int) -> Int
32     {
33         let number:Int = Int(ceil(Double(num1) / Double(num2)))
34         return number % 2 == 0 ? (number - 1) : number
35     }
36 }

点击:Playground测试

1 //测试
2 print(Solution().findBeauty2(100000, 6541367))
3 //Print 6541367489
4 //Print [67049, 97561]

原文地址:https://www.cnblogs.com/strengthen/p/10777313.html

时间: 2024-07-30 01:55:36

[Swift]浙大漂亮女同学征婚问题的相关文章

女同学的男同学

女人的安宁,常常被自己的男同学打破.那些个男同学,毕业后本来像一把沙子撒了出去,撒了出去就淹没在社会的草木深处,好多年都冒不出一个泡泡.可是有一天,就在女人相夫教子过得风平浪静的时候,却有男同学从哪里冒了出来——昔日那貌不惊人的小沙子,现在已经变成了足可在女人的心底激起层层波涛的大石头. 女人的同学哪怕是混得再栽的时候,心里也有一个梦想:希望总有那么一天,能够石破天惊地出现在女同学的面前.特别是那些读书时,不论出怎样的洋相.做出怎样的恶作剧都不被女生刮目相看.另眼相待的男同学,更是把这个梦想暗自

漂亮女友爱花钱 男子为供女友花销偷手机卖钱获刑

为供女友花销,他偷手机卖钱,被判处有期徒刑一年.缓刑一年 花钱为女友做头发.买时装……王中亮本以为父母每月给2000元生活费会活得很滋润,谁知道为了满足女友,他竟然当起了小偷.昨日,站在南岸区法院被告席上的王中亮后悔不已. 王中亮2012年从河南来重庆,父母每个月寄给他2000元生活费,来重庆的第一年,他认识了女友潘某.但让他没有想到的是,潘某完全是个花钱的包包.潘某长相漂亮,没有工作,在家里开网店.刚开始,潘某看不上王中亮.为展现“实力”,王中亮频繁请潘某“下馆子”,还给潘某买时装,而他自己则

行走于 Swift 的世界中

(属于转载) 从周一 Swift 正式公布,到现在周五,这几天其实基本一直在关注和摸索 Swift 了.对于一门新语言来说,开荒阶段的探索自然是激动人心的,但是很多时候资料的缺失和细节的隐藏也让人着实苦恼.这一周,特别是最近几天的感受是,Swift 并不像我上一篇表达自己初步看法的文章里所说的那样,相对于 objc 来说有更好的学习曲线.甚至可以说 objc 在除了语法上比较特别以外,其概念还是比较容易的.而 Swift 在漂亮的语法之后其实隐藏了很多细节和实现,而如果无法理解这些细节和实现,就

Coding girl一个老程序员谈到的一个女程序员的故事

因为有人说我给一个女程序员的建议不靠谱,我不服,因为我的工作经历中的一些女程序员都很不错,比那些男程序员都强,所以,我在新浪微博和twitter上征集女程序员的故事和想法,这两天来,我收到了好几封邮件,让我很感动.其中,有一个故事让我回味很久,在脑海里挥之不去,可能是因为她的经历和我很相似,她的想法和我很有共鸣. 本来,我想通过收到的这些故事然后编辑成一篇关于女程序员的文章,但是我觉得这个故事已经足够好了,任何的编辑都是对这个故事的不尊重,所以,我原封不动,一字不改地把这个故事转到这里.我把一些

汇集了很多swift 学习指南

https://github.com/ipader/SwiftGuide 1,059   Unstar7,294 Fork1,966 ipader/SwiftGuide CodeIssues 0Pull requests 0WikiPulseGraphs 这份指南汇集了Swift语言主流学习资源,并以开发者的视角整理编排.http://dev.swiftguide.cn 376 commits 3 branches 0 releases 12 contributors Swift 100.0%

一个乐观女程序员的声音(转载)

同样作为一名女程序员,必须转起~~世界上的工作,除非是严格要求性别男,剩下的都是没有性别区分的,最主要的是工作态度.人际沟通,团队项目中的团队合作也尤其重要.至于技术,只要你有态度也愿意努力,学会是迟早的事儿.所以,姑娘们,想干嘛就干嘛吧,别听旁边人的危言耸听: 转自:http://any9.com/1657.html 因为有人在评论里说我给一个女程序员的建议不靠谱,我不服,因为我的工作经历中的一些女程序员都很不错,比那些男程序员都强,所以,我在新浪微博和twitter上征集女程序员的故事和想法

女人们,这些技术男真的被“双十一”逼“疯”了!

每到"双十一"都是女人购物狂欢日,你家女人是不是都守到电脑前.手机上抢到手抖?但是你有没有想过.这里面支撑这么多人疯狂购物的技术系统码农们都是怎么过的? 前些日子遇到了淘宝的一个技术小二庄卓然(南天).听他嘚啵嘚啵他那些被"双十一"逼疯的事,非常有感触起来. 他和他的技术小二团队.是马云主动求合照的怪咖.是在辣妹热舞面前.也要忙着秒单的"死技术男":婚礼当晚不是洞房,是赶回杭州加班"双十一":在"双十一"让

Swift 学习指南

github地址:https://github.com/ipader/SwiftGuide Swift 语言指南 @SwiftLanguage 更新于 2016-4-18,更新内容详见 Issue 51.往期更新回顾详见<收录周报> 这份指南汇集了 Swift 语言主流学习资源,并以开发者的视角整理编排.对于精选项目及文章,可直接访问<Swift 项目精选>和<Swift 文章精选>. 目录 入门指引 教程文章 开源项目 推荐网站 开发工具 媒体报道 开放平台 Appl

谈女程序员的问题

我曾经怀疑过自己是否适合做技术,总觉得自己不如男生,也总在问自己的路在哪.而且没有自信,曾经紧张到,有人看我打字,都紧张的手抖.到现在,我觉得做技术挺好,就像你说的,我清楚的认识自己,我不是技术大牛,就每天写着自己的code,了解业务,挺好,但是不代表我不上进.很多女同学现在都不做技术了,也不写code了,但是我还在做,甚至越来越喜欢,在中国有种普遍的想法是,作几年技术该转去做管理,否则认为你不成功,这是人云亦云的说法.我想我为什么不能一直做技术呢?虽然中国的大环境可能不适合你一直做技术,但是我