关于嵌套函数解决方案

关于嵌套函数
题目要求是:判断几个数,若本身不是素数,判断左右两边与之最近的素数, 并输出长度,若长度相等,输出左边的,若本身是素数,则输出本身,长度输出0.

下面是我写的一个程序,报错是:'sushu' : local function definitions are illegal,我网上查了下说是不能在函数里定义函数,但是sushu这个函数里没有定义函数啊,研究好久了,就是不知道问题在哪里。。望各位朋友大神帮忙!!谢谢

 以下是显示出问题的程序:
int sushu(int a)    //判断否为素数。
{
         int j;
         for(int i=2;i<a;i++)
         {
                 if( a%i==0)
                 {
                         j=0;        
                 }
         }
         
         if( j!=0 )
         {
                 return a;
         }

         return 0;
 }

以下是总程序:
————————————————————————————————————————————————————————————————————————————————————————————————————


#include<iostream>

 int sushu(int a);

 void main()
 {
         int n;
         int *a=new int[n];
         std::cout <<"请输入测试组数:"<<"\n"; 
         std::cin >> n;
         for(int i=0;i<n;i++)
         {
                 std::cin >> a[i];
         }
         int s;
         
         s=sushu(a[i]);
         std::cout << s;
         int len1,len2;
         for(int j=0;j<n;j++)
         {
                 static s1=a[j];  
                 static s2=a[j];
                 int yuan=a[j];  //原数
                
                 if( sushu(s1)!=s1 ) //判断左边距离最短的素数
                {
                         s1=s1-1;
                 }
                 len1=yuan-s1;
                 
                 if( sushu(s2)!=s2 ) //判断右边距离最短的素数
                {
                         s2=s2+1;
                 }
                 len2=s2-yuan;
                 
                 if( len1<=len2 )    //长度比较
                {
                         std::cout << "素数长度是" << len1 <<"\n";
                         std::cout << "此素数是" << a[j]-len1 <<"\n";
                 }
                 else