Strong and weak primes: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 1,830: | Line 1,830: | ||
37723 strong primes and 37780 weak primes below 1000000. |
37723 strong primes and 37780 weak primes below 1000000. |
||
320991 strong primes and 321750 weak primes below 10000000. |
320991 strong primes and 321750 weak primes below 10000000. |
||
</pre> |
|||
=={{header|Rust}}== |
|||
<lang rust>fn is_prime(n: i32) -> bool { |
|||
for i in 2..n { |
|||
if i * i > n { |
|||
return true; |
|||
} |
|||
if n % i == 0 { |
|||
return false; |
|||
} |
|||
} |
|||
n > 1 |
|||
} |
|||
fn next_prime(n: i32) -> i32 { |
|||
for i in (n+1).. { |
|||
if is_prime(i) { |
|||
return i; |
|||
} |
|||
} |
|||
0 |
|||
} |
|||
fn main() { |
|||
let mut n = 0; |
|||
let mut prime_q = 5; |
|||
let mut prime_p = 3; |
|||
let mut prime_o = 2; |
|||
print!("First 36 strong primes: "); |
|||
while n < 36 { |
|||
if prime_p > (prime_o + prime_q) / 2 { |
|||
print!("{} ",prime_p); |
|||
n += 1; |
|||
} |
|||
prime_o = prime_p; |
|||
prime_p = prime_q; |
|||
prime_q = next_prime(prime_q); |
|||
} |
|||
println!(""); |
|||
while prime_p < 1000000 { |
|||
if prime_p > (prime_o + prime_q) / 2 { |
|||
n += 1; |
|||
} |
|||
prime_o = prime_p; |
|||
prime_p = prime_q; |
|||
prime_q = next_prime(prime_q); |
|||
} |
|||
println!("strong primes below 1,000,000: {}", n); |
|||
while prime_p < 10000000 { |
|||
if prime_p > (prime_o + prime_q) / 2 { |
|||
n += 1; |
|||
} |
|||
prime_o = prime_p; |
|||
prime_p = prime_q; |
|||
prime_q = next_prime(prime_q); |
|||
} |
|||
println!("strong primes below 10,000,000: {}", n); |
|||
n = 0; |
|||
prime_q = 5; |
|||
prime_p = 3; |
|||
prime_o = 2; |
|||
print!("First 36 weak primes: "); |
|||
while n < 36 { |
|||
if prime_p < (prime_o + prime_q) / 2 { |
|||
print!("{} ",prime_p); |
|||
n += 1; |
|||
} |
|||
prime_o = prime_p; |
|||
prime_p = prime_q; |
|||
prime_q = next_prime(prime_q); |
|||
} |
|||
println!(""); |
|||
while prime_p < 1000000 { |
|||
if prime_p < (prime_o + prime_q) / 2 { |
|||
n += 1; |
|||
} |
|||
prime_o = prime_p; |
|||
prime_p = prime_q; |
|||
prime_q = next_prime(prime_q); |
|||
} |
|||
println!("weak primes below 1,000,000: {}", n); |
|||
while prime_p < 10000000 { |
|||
if prime_p < (prime_o + prime_q) / 2 { |
|||
n += 1; |
|||
} |
|||
prime_o = prime_p; |
|||
prime_p = prime_q; |
|||
prime_q = next_prime(prime_q); |
|||
} |
|||
println!("weak primes below 10,000,000: {}", n); |
|||
}</lang> |
|||
<pre> |
|||
First 36 strong primes: 11 17 29 37 41 59 67 71 79 97 101 107 127 137 149 163 179 191 197 223 227 239 251 269 277 281 307 311 331 347 367 379 397 419 431 439 |
|||
strong primes below 1,000,000: 37723 |
|||
strong primes below 10,000,000: 320991 |
|||
First 36 weak primes: 7 13 19 23 31 43 47 61 73 83 89 103 109 113 131 139 151 167 181 193 199 229 233 241 271 283 293 313 317 337 349 353 359 383 389 401 |
|||
weak primes below 1,000,000: 37779 |
|||
weak primes below 10,000,000: 321749 |
|||
</pre> |
</pre> |
||