Advertisement
mgostih

Calculate primes in c++

Mar 19th, 2016
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Math stuff.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h" //Include this only with visual studio!
  5. #include <stdlib.h>
  6. #include <Windows.h>
  7. int globalarray[1024] = { 2, 3, 5, 7, 11, 13 };
  8. int primalitycheck(int number){
  9.     int i = 0,temp;
  10.     do
  11.     {  
  12.         if (!globalarray[i] || number ==globalarray[i]) return 1; //isprime
  13.         temp = number%globalarray[i];
  14.         i++;
  15.     } while (temp != 0);
  16.     return 0; //notprime
  17. }
  18. void AddIfNew(int* tArray, int element, int size){
  19.     for (int i = 0; i < size; i++){
  20.         if ((tArray[i] != 0) && (tArray[i] != element)){
  21.             NULL;
  22.         }
  23.         else{
  24.  
  25.             if (element!=1) tArray[i] = element;
  26.             break;
  27.         }
  28.     }
  29. }
  30. int _tmain(int argc, _TCHAR* argv[])
  31. {  
  32.     LARGE_INTEGER t, b, f;
  33.     int multiplier = 1000;
  34.     QueryPerformanceCounter(&t);
  35.     QueryPerformanceFrequency(&f);
  36.     AddIfNew(globalarray, 17, 1024);
  37.    
  38.     for (int i = 1; i < 1000000; i= i +2){
  39.         if (primalitycheck(i)){
  40.             AddIfNew(globalarray, i, 1024);
  41.             printf("%d\n", i);
  42.         }
  43.     }
  44.     QueryPerformanceCounter(&b);
  45.     double took = (double)(b.QuadPart - t.QuadPart);
  46.     printf("\ntook: %.0Lf milliseconds\n",took/f.QuadPart*multiplier );
  47.     system("PAUSE>NUL");
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement