반응형
아주 간단하게 최초 100개의 소수를 구하는 swiftui 프로그램.
최초에 2 이상인 100개의 정수가 화면에 나열됨. 각 숫자 버튼을 누르면, 누른 숫자의 배수들을 제거함. 2부터 하나씩 버튼을 눌르면, 남아있는 숫자들이 소수들.
import SwiftUI
struct ContentView: View {
@State private var primes = Array(2...30000)
@State private var clicked = Set<Int>()
var body: some View {
VStack {
ForEach(0..<10, id: \.self) { row in
HStack {
ForEach(0..<10, id: \.self) { col in
let n = primes[row * 10 + col]
Button("\(n)") {
removeKN(n)
clicked.insert(n)
}
.frame(width: 90, height: 30)
.foregroundColor(clicked.contains(n) ? .red:.primary)
}
}
}
}
}
func removeKN(_ n: Int) {
primes = primes.filter{ $0 == n || $0%n != 0 }
}
}
728x90
'프로그래밍 > SWIFT' 카테고리의 다른 글
XCode 프로젝트에 써드파티 패키지 추가하기 (0) | 2022.07.14 |
---|---|
Swift XMLCoder (0) | 2022.07.14 |
100DaysOfSwiftUI - Day 24 (0) | 2022.07.09 |
100DaysOfSwiftUI - Day 23 (0) | 2022.07.09 |
100DaysOfSwiftUI (0) | 2022.07.01 |