Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C++ by TrucNguyen ( 6 years ago )
#include <iostream>
#include <cmath>
using namespace std;


void REALLOC(int *&a, int oldSize, int newSize)
{
	int* b = new int[oldSize];

	for (int i = 0; i < oldSize; i++)
	{
		b[i] = a[i];
	}

	delete[] a;

	a = new int[newSize];

	int min = oldSize < newSize ? oldSize : newSize;

	for (int i = 0; i < min; i++)
	{
		a[i] = b[i];
	}

	delete[] b;
}


bool IsPrime(int n)
{
	if (n < 2)
	{
		return 0;
	}
	else if (n > 2 && n % 2 == 0)
	{
		return 0;
	}
	else
	{
		for (int i = 3; i <= sqrt(n); i += 2)
		{
			if (n % i == 0)
			{
				return 0;
			}
		}
	}

	return 1;
}


void Add_Element(int *&a, int& size, int element)
{
	REALLOC(a, size, size + 1);
	*(a + size) = *(a + size - 1);
	*(a + size - 1) = element;
	size++;
}

void Add_Prime_Number(int *&a, int& size)
{
	int start = (*a) + 1;
	int end = *(a + size - 1);

	for (int i = start; i < end; i++)
	{
		if (IsPrime(i))
		{
			Add_Element(a, size, i);
		}
	}
}


void Get_Arr(int* a, int size)
{
	for (int i = 0; i < size; i++)
	{
		cout << a[i] << " ";
	}
}

void check_Input_Value(int &a, int &b, bool &checkContinue)
{
	if (IsPrime(a) && IsPrime(b))
	{
		checkContinue = 1;
		return;
	}

	for (int i = a; i <= b; i++)
	{
		if (IsPrime(i))
		{
			a = i;
			break;
		}
	}

	for (int i = b; i >= a; i--)
	{
		if (IsPrime(i))
		{
			b = i;
			break;
		}
	}

	if (IsPrime(a) && a == b)
	{
		cout << "\nGiua 2 so da cho co duy nhat mot so nguyen to la: " << a;
		checkContinue = 0;
		return;
	}

	if (!IsPrime(a))
	{
		cout << "\nGiua 2 so da cho khong co so nguyen to nao!";
		checkContinue = 0;
		return;
	}
	checkContinue = 1;
}

bool check_Input_Oder(int a, int b)
{
	if (a > b)
	{
		return 0;
	}
	return 1;
}


int main()
{
	int* prime_arr = new int[2];
	int size = 2;

	cin >> prime_arr[0];
	cin >> prime_arr[1];

	if (check_Input_Oder(prime_arr[0], prime_arr[1]))
	{
		bool checkContinue;
		check_Input_Value(prime_arr[0], prime_arr[1], checkContinue);
		if (checkContinue)
		{
		Add_Prime_Number(prime_arr, size);
		Get_Arr(prime_arr, size);

		delete[] prime_arr;
		}
	}

	else
	{
		cout << "\nInput khong hop le!";
	}
	cout << endl;
	system("pause");
	return 0;
}

 

Revise this Paste

Your Name: Code Language: