Cousin primes: Difference between revisions

Added Swift solution
(Added Swift solution)
Line 1,789:
 
41 pairs found
</pre>
 
=={{header|Swift}}==
<lang swift>import Foundation
 
func primeSieve(limit: Int) -> [Bool] {
guard limit > 0 else {
return []
}
var sieve = Array(repeating: true, count: limit)
sieve[0] = false
if limit > 1 {
sieve[1] = false
}
if limit > 4 {
for i in stride(from: 4, to: limit, by: 2) {
sieve[i] = false
}
}
var p = 3
var sq = p * p
while sq < limit {
if sieve[p] {
for i in stride(from: sq, to: limit, by: p * 2) {
sieve[i] = false
}
}
sq += (p + 1) * 4;
p += 2
}
return sieve
}
 
func toString(_ number: Int) -> String {
return String(format: "%3d", number)
}
 
let limit = 1000
let sieve = primeSieve(limit: limit)
var count = 0
for p in 0..<limit - 4 {
if sieve[p] && sieve[p + 4] {
print("(\(toString(p)), \(toString(p + 4)))", terminator: "")
count += 1
print(count % 5 == 0 ? "\n" : " ", terminator: "")
}
}
print("\nNumber of cousin prime pairs < \(limit): \(count)")</lang>
 
{{out}}
<pre>
( 3, 7) ( 7, 11) ( 13, 17) ( 19, 23) ( 37, 41)
( 43, 47) ( 67, 71) ( 79, 83) ( 97, 101) (103, 107)
(109, 113) (127, 131) (163, 167) (193, 197) (223, 227)
(229, 233) (277, 281) (307, 311) (313, 317) (349, 353)
(379, 383) (397, 401) (439, 443) (457, 461) (463, 467)
(487, 491) (499, 503) (613, 617) (643, 647) (673, 677)
(739, 743) (757, 761) (769, 773) (823, 827) (853, 857)
(859, 863) (877, 881) (883, 887) (907, 911) (937, 941)
(967, 971)
Number of cousin prime pairs < 1000: 41
</pre>
 
1,777

edits