Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.96 KB | None | 0 0
  1. #include <iostream>
  2. #include <memory>
  3. #include <vector>
  4. #include <cmath>
  5. #include <ctime>
  6. #include <fstream>
  7. #include <string>
  8.  
  9.  
  10. bool isPrime(int a,std::vector<int>& numbers){
  11.     for(size_t i = 0; i < numbers.size(); i++){
  12.         int tmp = numbers[i];
  13.         if(tmp<=sqrt(a)){
  14.             if((a%tmp)==0){
  15.                 return false;
  16.             }
  17.         } else {
  18.             return true;
  19.         }
  20.     }
  21.     return true;
  22. }
  23.  
  24. void getNumbers(std::vector<int>& numbers, int limit){
  25.     numbers.push_back(2);
  26.     numbers.push_back(3);
  27.     int k = 0;
  28.     while(k<limit-6){
  29.         k += 6;
  30.         for(size_t i = 0; i < 1; i++){
  31.             if (isPrime(k-1,numbers)) {
  32.                 numbers.push_back(k-1);
  33.             }
  34.             if (isPrime(k+1,numbers)) {
  35.                 numbers.push_back(k+1);
  36.             }
  37.         }
  38.     }
  39. }
  40.  
  41. int main(int argc, char const *argv[]){
  42.     int limit = -1;
  43.     std::vector<int> numbers(0,0);
  44.     while(limit == -1){
  45.         std::cout << "find the prime number from 1 to : ";
  46.         std::cin >> limit;
  47.         if(limit < 20){
  48.             limit = 20;
  49.         };
  50.     }
  51.     int begin = (int)time(NULL);
  52.     getNumbers(numbers,limit);
  53.     int end = (int)time(NULL);
  54.     std::cout << "execution time : " << end-begin << "s" << std::endl;
  55.     std::cout << ">>> " << numbers.size() << " numbers found" << std::endl;
  56.     std::string tmp("");
  57.     while(tmp != "Yes" && tmp != "No"){
  58.         std::cout << "do you want to save the number to a file ? [Yes/No] : ";
  59.         std::cin >> tmp;
  60.         if(tmp != "Yes" && tmp != "No") {
  61.             std::cout << "Yes or No ! รจ_รฉ" << std::endl;
  62.         }
  63.     }
  64.     if(tmp == "Yes"){
  65.         std::cout << "file name : ";
  66.         std::cin.ignore();
  67.         std::getline(std::cin, tmp);
  68.         std::ofstream resultsFile(tmp);
  69.         for(size_t i = 0; i < numbers.size(); i++){
  70.             resultsFile << numbers[i] << std::endl;
  71.         }
  72.     }
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement