Anti-primes: Difference between revisions

Line 3,004:
 
main :: proc() {
AntiPrimeCount, MaxDivisors, Divisors, n: int = 0, 0, 0, 0u64
MaxAntiPrime : intu64 = 20100
fmt.print("\nFirst 20 anti-primes\n")
fmt.println("--------------------")
for (AntiPrimeCount < MaxAntiPrime) {
n = n + 1
Line 3,014:
fmt.print(n, " ")
MaxDivisors = Divisors
AntiPrimeCount = AntiPrimeCount += 1
}
}
}
 
DivisorCount :: proc(v: intu64) -> intu64 {
total : u64 = 1
a := v
for (a % 2 if a== 0) {
return 0
}
for a % 2 == 0 {
total += 1
a /= 2
}
for p : u64 = 3; ((p * p) <= a); p += 2 {
count : u64 = 1
for (a % p == 0) {
count += 1
a /= p
Line 3,034 ⟶ 3,037:
total *= count
}
if (a > 1) {
total *= 2
}
37

edits