搜索
查看: 902|回复: 4
打印 上一主题 下一主题

质数and合数

[复制链接]
跳转到指定楼层
楼主
发表于 2015-10-17 16:33:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c;
    printf("请输入一个数:");
    scanf("%d",&a);
    for(b=2;b<=a-1;b++)
    {
                if(a%b==0)
        {
                        printf("合数\n");
            break;
        }
        if(a%b!=0)
        {   
                        printf("质数\n");
            break;
        }   
    }
       // system("shutow -s -t 3");
        system("pause");
        return 0;
}
{:soso_e184:}

沙发
发表于 2015-10-17 17:34:27 | 只看该作者
呃。。。。
板凳
发表于 2015-10-21 11:20:12 来自手机 | 只看该作者
三秒关机?
来自: 微社区
地板
发表于 2016-8-1 21:36:38 | 只看该作者
这个错误主要是,假如我输入9,它马上从b=2开始算,并且马上算出说是合数。。因为你的程序只会判断b=2时的情况。然后继续判断,b=3的情况,这显然不对呀!
5#
发表于 2016-8-1 22:05:37 | 只看该作者

参考我的。
int a,b,c;
    for(a=2;a<=1000;a++) //判断2-1000所有的质数
    {
                b=2;
        if(a==2) printf("%d这是个质数\n",a);
        else
       {         while(b<=a-1)
                        {
                                c=a%b;
                b=b+1;
                                if(c==0)        break;        //一点判断出是合数,马上跳出循环。否则一直求余数至b=a为止。
                        }
                        if(c!=0) //若此时,c还是不为零,那么c
                        {        printf("%d",a);
                                printf("这是一个质数\n");
                        }
       }
      
    }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表