c语言作业急用,素数探求

从键盘任意输入一个整数m,若m不是素数则计算输出所有的因子(不包括1),例如对于16,输出2.4.8;否则输出“No divisor! It is a prime number”。

 #include<stdio.h>

#include<math.h>

int isprime(int n)

{int i;

 for(i=2;i<=sqrt(n);i++)

if(n%i==0)return 0;

}

int main()

{int n,i,j=0;

scanf("%d",&n);

if(isprime(n))

printf("No divisor! %d is a prime number",n);

else 

{i=2;

 while(i<=n/2)

 {

if(n%i==0)

{

if(j)printf("、");

printf("%d",i);

j=1;

}

i++;

}

}

return 0;

}

作为一个初学者的回答。。。

#include
#include
#define MAX 1024
int main(int argc, char **argv)
{
char num[10]; //接收输入数字
int result[MAX]; //存储结果
int i, n, k, r, index = 0;

   scanf("%s", num); //输入
   n = atoi(num); //转int
   if (n % 2 == 0)  //取个中间值 k
          k = n / 2;
   else
          k = n / 2 + 1;
   for (i = 2; i < k; i++)  //只需要循环一半所以取了个中间值k
   {
                        if (n % i == 0)  //取余,看看能不能整除,如果能,继续
                        {
                                r = n / i;  //求商
                                if (r == i)   //如果 商=除数 那么只需要存一次就好了
                                {
                                            result[index] = r;
                                            index++;
                                    } else
                                {     //如果 商 != 除数 那么两个都存起来
                                            result[index] = i;
                                            index++;
                                            result[index] = r;
                                            index++;
                                }
          }
   }
   if (index == 0)
   {
          printf("No divisor! It is a prime number");
    } else
   {
          for (i = 0; i < index; i++)
          {
                 printf("%d ", result[i]);
          }
   }
   return 0;

}

...............咋样