Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Julia Program GilbreathConjecture.jl
- # function eratos(n) laskee Eratostheneen seulalla
- # annettua lukua pienemmät alkuluvut
- # Peräkkäisten alkulukujen erotuksista saadaa uusi jono
- # Ja tästä jonosta edelleen peräkkäisten erotukset jne
- # Tulokseksi saadaan taulukko
- # https://fi.wikipedia.org/wiki/Gilbreathin_konjektuuri
- # Juhani Kaukoranta 6.11.2019
- using Printf
- function eratos(n) # primes < n
- sieve = ones(Bool, n) # all true in sieve
- sieve[1] = false # 1 is not a prime
- for i = 2:trunc(Int,sqrt(n))
- if sieve[i] # if true,
- for j in (i*i):i:n # sequence from i^2 to n with step i sieved out
- sieve[j] = false # not prime
- end
- end
- end
- primes = filter(x -> sieve[x], 1:n) # returns only true, so primes
- return length(primes), primes
- end
- println("Anna kokonaisluku, jota pienemmät alkuluvut lasketaan ")
- ntxt = readline()
- n = parse(Int,ntxt)
- m, primes = eratos(n)
- println("Alkulukuja, jotka < ",n," on ",m," kpl")
- println("Ekarivillä alkuluvut, seuraavilla erotukset")
- a = Array{Int}(undef,m,m)
- for j = 1 : m
- # alkulukurivi
- a[1,j] = primes[j]
- @printf("%3.0f",a[1,j])
- end
- println()
- function differences()
- # erotusrivit
- pituus = m-1
- for i = 1 : m-1
- for j = 1 : pituus
- a[i+1,j] = abs(a[i,j+1] - a[i,j])
- @printf("%3.0f",a[i+1,j])
- end
- println()
- pituus -= 1
- end
- end
- differences()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement