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

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

2个回答

 #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;

}
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复weixin_41126229: 如果问题解决,请点下我回答右边的采纳,谢谢
接近 2 年之前 回复
weixin_41126229
weixin_41126229 回复caozhy: 谢谢
接近 2 年之前 回复

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

#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;

}

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

weixin_41126229
weixin_41126229 回复I am ztf: 我会寝室再试下,谢谢
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!