Pokouším se napsat program na rozklad čísla na prvočinitele.
#include <iostream>
using namespace std;
bool prime(int a){
int x;
for(x=2;x<a/2+2;x++){
if(a%x==0){
return 0; break;}}
if (a%x!=0) return 1;
}
int exp(int a,int b){
for(int x=0;x<(b-1);x++){
a*=a;}
return a;}
int main(){
int cislo,l=1,num;
int * prvocisla;
cin>>cislo;
num=cislo/2;
prvocisla=new int[l];
for(int n=2;n<num+1;n++){
if (prime(n)==1){prvocisla[l]=n;l++;}}
for(int m=0;m<l;m++){
for(int o=1;cislo%(exp(prvocisla[m],o)==0);o++)
{cout<<prvocisla[m]<<" ";}}
cin.get();cin.get();
return 0;}
vím že některé věci v tom mám zbytečně (např. napřed zjišťování jaká jsou prvočísla menší než číslo, které chci rozložit). Ale myslím, že to není ten problém, kvůli kterému to nefunguje. Vždy mi to napíše "V aplikaci prvocinitele.exe došlo k problému a je třeba ji zavřít. Omlouváme se za vzniklé potíže."
hledal jsem tam nějaké dělení nulou, ale nic jsem nenašel.
Poradili byste mi prosím, kde je v tom ten problém?
Dík