Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Rust exercise
- // Find prime numbers
- fn is_prime(number: u64) -> bool {
- // Returns true if given number is a prime
- if number == 2 || number == 3 {
- return true
- }
- if number <= 1 || number % 2 == 0 || number % 3 == 0 {
- return false
- }
- let max_number = (number as f64).sqrt() as u64 + 1;
- for i in (5..max_number).step_by(2) {
- if number % i == 0 {
- return false
- }
- }
- return true
- }
- fn check_primes(to_number: u64) -> Vec<u64> {
- // Checks is there any primes between 0 and given value (to_number)
- // and pushes all prime numbers to vector as a result
- let mut multiplier = 1;
- let mut potential_prime = 6*multiplier;
- let mut primes = Vec::new();
- if to_number >= 2 {
- primes.push(2);
- }
- if to_number >= 3 {
- primes.push(3);
- }
- while potential_prime<to_number {
- if is_prime(potential_prime-1) {
- primes.push(potential_prime-1);
- }
- if is_prime(potential_prime+1) {
- primes.push(potential_prime+1);
- }
- multiplier += 1;
- potential_prime = 6*multiplier;
- }
- return primes;
- }
- fn main() {
- let primes = check_primes(1000000);
- println!("{:?}", primes[primes.len()-1]) ;
- }
Add Comment
Please, Sign In to add comment