summaryrefslogtreecommitdiff
path: root/vettMul2.cc
blob: 5f45228d55649f7bcea256e96667c5434d8e70e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//	utilizzato compilatore GCC 5.0.4 in ambiente Linux Ubuntu 14.06
	
/*	dato un vettore di grandezza 100, stampare i valori caricati 
	precedentemente che sono multipli del numero 2 */

#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <vector>
#include <math.h>

using namespace std;

const int n = 100;

int n_rand(int num)
{
	num = rand() % n;
	
	return num;
}

bool potenza2(int num)
{
	bool x = false; 
	
	for(int i = 0; i < n; i++)
	{
		if(pow(2,i) == num) {
			x = true;
			break;		
		}
	}
	
	if(x) return true;
	else return false;
}

int main()
{
	srand(time(0));
		
	int vett1[n], n_casuale, i;
	vector<int> vett2;
	
	for(i = 0; i < n; i++) {
		vett1[i] = n_rand(n_casuale);
		if(potenza2(vett1[i])) 
			vett2.push_back(vett1[i]);
	}
	
	cout << "Numeri del vettore: " << endl;
	for(i = 0; i < n; i++)
		cout << vett1[i] << " ";
	
	cout << "\n\nNumeri del vettore multipli di 2: " << endl;	
	for(i = 0; i < (signed) vett2.size(); i++) 
		cout << vett2[i] << " ";
	
	return 0;
}