Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //=======================================================================
- //
- // SAMPLE SOURCE CODE - SUBJECT TO THE TERMS OF END-USER LICENSE AGREEMENT FOR
- // INTEL(R) PARALLEL ADVISOR 2011.
- //
- // Copyright 2009-2010 Intel Corporation
- //
- // THIS FILE IS PROVIDED "AS IS" WITH NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
- // NOT LIMITED TO ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- // PURPOSE, NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS.
- //
- // ========================================================================
- #include "stdafx.h"
- #include <stdio.h>
- #include <cilk/cilk.h>
- #include <cilk/reducer_opadd.h>
- const int limit = 3000000;
- const int correctCount = 216816;
- cilk::reducer_opadd<int> primes((limit >= 2) ? 1 : 0); // two is a prime, so count it;
- void Tick() {
- primes++;
- }
- bool IsPrime(int p) {
- for (int i = 3; i*i <= p; i += 2) {
- if (p/i*i == p) return false;
- }
- return true;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- cilk_for (int p = 3; p <= limit; p += 2) {
- if (IsPrime(p)) Tick();
- }
- printf("primes = %d\n", primes.get_value());
- return primes.get_value() != correctCount;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement