コード例 #1
0
ファイル: 060.c プロジェクト: dilkas/euler
int main() {
  /* Sieve of Eratosthenes */
  int isprime[MAX_PRIME + 1];
  for (int i = 0; i <= MAX_PRIME; i++) isprime[i] = 1;
  for (int i = MIN_PRIME; i <= sqrt(MAX_PRIME); i++) {
    if (!isprime[i]) continue;
    for (int j = i * i; j <= MAX_PRIME; j += i) isprime[j] = 0;
  }

  int primes[MAX_PRIME];
  int primes_limit = 0;
  for (int i = MIN_PRIME; i <= MAX_PRIME; i++) {
    if (isprime[i]) primes[primes_limit++] = i;
  }

  int **pair = (int **) malloc(primes_limit * sizeof(int *));
  for (int i = 0; i < primes_limit; i++)
    pair[i] = (int *) malloc(primes_limit * sizeof(int));
  for (int i = 0; i < primes_limit; i++) {
    for (int j = i + 1; j < primes_limit; j++) {
      pair[i][j] = works(primes[i], primes[j], isprime) &&
        works(primes[j], primes[i], isprime);
    }
  }

  int starting_set[primes_limit];
  for (int i = 0; i < primes_limit; i++) starting_set[i] = 1;

  printf("%d\n", recurse(0, 0, -1, 0, primes_limit, starting_set, primes,
                         pair));

  for (int i = 0; i < primes_limit; i++) free(pair[i]);
  free(pair);
  return 0;
}
コード例 #2
0
ファイル: main.c プロジェクト: jcjohnson/ProjectEuler
int main() {
  int n = 1;
  while (!works(n)) {
    n++;
  }
  printf("%d\n", n);
  return 0;
}
コード例 #3
0
LEMON_UNITTEST_CASE(RunQUnittest,ExitJobTest)
{
    runQ_service Q;

    ExitJob::create(Q);

    thread_group works(lemon::bind(&runQ_service::run,&Q),8);

    works.join();
}
コード例 #4
0
ファイル: main.cpp プロジェクト: CCJY/coliru
	int main()
	{
		Node *head = new Node{ "Charlie", NULL };
		add(head, "Lisa");
		add(head, "Drew");
		add(head, "Derrick");
		add(head, "AJ");
		add(head, "Bojian");
		print(head);
		works(head);
		print(head);
	}
コード例 #5
0
LEMON_UNITTEST_CASE(RunQUnittest,iTaxiGatewayTest)
{
    globalCounter = 0;

    runQ_service Q;

    Q.proxy(iTaxiGateway::create(Q));

    thread_group works(lemon::bind(&runQ_service::run,&Q),4);

    works.join();

    Q.reset();

    LEMON_CHECK(Q.jobs() == 0);

    LEMON_CHECK(globalCounter == iTaxiGateway::maxTaxis);
}
コード例 #6
0
ファイル: cge_main.cpp プロジェクト: MaddTheSane/scummvm
void Sprite::touch(uint16 mask, int x, int y, Common::KeyCode keyCode) {
	_vm->_sys->funTouch();

	if ((mask & kEventAttn) != 0)
		return;

	_vm->_infoLine->update(name());

	if (mask & (kMouseRightDown | kMouseLeftDown))
		_vm->_sprite = this;

	if (_ref / 10 == 12) {
		_vm->optionTouch(_ref % 10, mask);
		return;
	}

	if (_flags._syst)
		return;       // cannot access system sprites

	if (_vm->_game)
		if (mask & kMouseLeftUp) {
			mask &= ~kMouseLeftUp;
			mask |= kMouseRightUp;
		}

	if ((mask & kMouseRightUp) && _vm->_commandHandler->idle()) {
		Sprite *ps = (_vm->_pocLight->_seqPtr) ? _vm->_pocket[_vm->_pocPtr] : NULL;
		if (ps) {
			if (_flags._kept || _vm->_hero->distance(this) < kDistMax) {
				if (works(ps)) {
					_vm->feedSnail(ps, kTake);
				} else
					_vm->offUse();
				_vm->selectPocket(-1);
			} else
				_vm->tooFar();
		} else {
			if (_flags._kept) {
				mask |= kMouseLeftUp;
			} else {
				if (_vm->_hero->distance(this) < kDistMax) {
					if (_flags._port) {
						if (_vm->findPocket(NULL) < 0) {
							_vm->pocFul();
						} else {
							_vm->_commandHandler->addCommand(kCmdReach, -1, -1, this);
							_vm->_commandHandler->addCommand(kCmdKeep, -1, -1, this);
							_flags._port = false;
						}
					} else {
						if (_takePtr != kNoPtr) {
							if (snList(kTake)[_takePtr]._commandType == kCmdNext)
								_vm->offUse();
							else
								_vm->feedSnail(this, kTake);
						} else {
							_vm->offUse();
						}
					}
				} else {
					_vm->tooFar();
				}
			}
		}
	}

	if ((mask & kMouseLeftUp) && _vm->_commandHandler->idle()) {
		if (_flags._kept) {
			for (int n = 0; n < kPocketNX; n++) {
				if (_vm->_pocket[n] == this) {
					_vm->selectPocket(n);
					break;
				}
			}
		} else {
			_vm->_commandHandler->addCommand(kCmdWalk, -1, -1, this); // Hero->FindWay(this);
		}
	}
}