Ejemplo n.º 1
0
int main()
{
	size_t N;
	scanf ("%zu", &N);

	void* bitset = create_bitset (N + 1);

	set_bitset (bitset, 0, 1);
	set_bitset (bitset, 1, 1);

	for (size_t i = 2; i*i <= N; ++i) {
		if (!get_bitset (bitset, i)) {
			for (size_t j = i*i; j <= N; j += i) {
				set_bitset (bitset, j, 1);
			}
		}
	}

	size_t prime_count = 0;

	for (size_t i = 0; i <= N; ++i) {
		if (!get_bitset (bitset, i)) {
			++prime_count;
		}
	}

	destroy_bitset (bitset);

	printf ("%zu\n", prime_count);
}
Ejemplo n.º 2
0
int main()
{
	size_t infected, count;
	scanf ("%zu %zu", &infected, &count);

	void* bitset = create_bitset (count);

	for (size_t i = 0; i < infected; ++i) {
		size_t nr;
		scanf ("%zu", &nr);

		size_t delta = nr;
		for (size_t j = nr; j < count; j += delta++) {
			set_bitset (bitset, j, 1);
		}
	}

	size_t infected_count = 0;

	for (size_t i = 0; i < count; ++i) {
		if (get_bitset (bitset, i)) {
			++infected_count;
		}
	}

	destroy_bitset (bitset);

	printf ("%zu\n", infected_count);
}
Ejemplo n.º 3
0
int main(void)
{

    int x, i, j;
    scanf("%d", &x);
    void* bitset = init_bitset(x + 1);

    for(i = 2; i * i <= x; i++)
        if(!get_bitset(bitset, i))
            for(j = i * i; j <= x; j += i)
                set_bitset(bitset, j, 1);

    int count = 0;
    for(i = 2; i <= x; i++)
        if(!get_bitset(bitset, i))
            count++;
    printf("%d", count);
    destroy_bitset(bitset);
    return 0;
}
Ejemplo n.º 4
0
//void v_ctl_note(struct MidiTraceNote v)
void v_ctl_note(int status, int ch, int note, int vel)
{
    int xl, n, c;
    unsigned int onoff=0, prev_onoff, check;
    Bitset *bitset;
	
    if( !mac_TraceWindow.show || ch >= 16)
	return;

    if( /*ctl_ncurs_mode != NCURS_MODE_TRACE ||*/ selected_channel == ch)
		return;

    scr_modified_flag = 1;
    if(display_velocity_flag)
		n = '0' + (10 * vel) / 128;
    else
		n = note_name_char[note % 12];
    c = (COLS - 24) / 12 * 12;
    if(c <= 0)
		c = 1;
    xl=note % c;
    if( note>=MAX_NOTE_NUM ) return;
	
	onoff= UpdateNote( status, ch, note, vel);   //draw at first
    bitset = channel_program_flags + ch;
	get_bitset(bitset, &prev_onoff, note, 1);
    onoff <<= (8 * sizeof(onoff) - 1);
    set_bitset(bitset, &onoff, note, 1);
    check = has_bitset(bitset);
            
	if( prev_onoff && !onoff ) current_voices--;
	if( !prev_onoff && onoff ){
		current_voices++;
		mac_trc_update_voices();
	}
	
}