كيف أبدل كل عدد أولي في المصفوفة بمضروبه؟
أردت في الكود التالي أن أبدل كل عدد أولي في المصفوفة بمضروبه و لكن عندما أقوم بطباعة عناصر المصفوفة تظهر أرقام عشوائية و لا تظهر الأعداد المدخلة أو مضروبها في حال كان العدد أولي .. فالمشكلة في الكود وما حلها؟
#include <iostream>
using namespace std;
int f(int n);
int main()
{
int a[10], i, j, n, k;
cout << "enter size of array\n";
cin >> n;
cout << "\n ========= \n insert the items..\n";
for (i = 0; i < n; i++)
cin >> a[i];
cout << "\n ========= \n";
for (i = 0; i < n; i++)
{
for (j = 2; j < a[i]; j++)
{
if (a[i] % j != 0)
a[i] = f(a[i]);
}
}
for (k = 0; k < n; k++)
cout << a[k] << " ";
}
int f(int n)
{
if ((n == 0) || (n == 1))
return 1;
else
return n * f(n - 1);
return 0;
}
#include <iostream>
using namespace std;
int f(int n);
int main()
{
int a[10], i, j, n, k;
cout << "enter size of array\n";
cin >> n;
cout << "\n ========= \n insert the items..\n";
for (i = 0; i < n; i++)
cin >> a[i];
cout << "\n ========= \n";
for (i = 0; i < n; i++)
{
for (j = 2; j < a[i]; j++)
{
if (a[i] % j != 0)
a[i] = f(a[i]);
}
}
for (k = 0; k < n; k++)
cout << a[k] << " ";
}
int f(int n)
{
if ((n == 0) || (n == 1))
return 1;
else
return n * f(n - 1);
return 0;
}