急,请高手帮忙看看错在哪里?
急,请高手帮忙看看错在哪里?运行时输入大于15的数总是报错。以下是代码:
// 素数和.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int i,j,k,l,n,m;
int w,z,x,d;
int *a;
cout<<"n=";
cin>>n;
cout<<endl;
a=new int(n+1);
m=0;
if(n==2){
m=1;a[m]=2;
}
else
{m=1;a[m]=2;
for(i=3;i<=n;i++)
{
k=i;d=0;w=1;
for(j=1;j<=m;j++)
{
l=0;
while((l==0)&&(k>0))
{
if(k%a[j]==0)
{
d++;
k=k/a[j];
w=w+a[j];
}
else
{
l++;
}
}
}
if(k>1)w=w+k;
if(d==0)
{
m++;a[m]=i;
}
else
{
if(w==i)cout<<i<<endl;
}
}
}
delete[] a;
system("pause");
return 0;
}