| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4413 人关注过本帖
标题:输出101到200以内所有的素数。
只看楼主 加入收藏
小白瘤
Rank: 1
来 自:江西
等 级:新手上路
帖 子:10
专家分:0
注 册:2018-7-28
结帖率:25%
收藏
已结贴  问题点数:20 回复次数:6 
输出101到200以内所有的素数。
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i, j;

    i = 101;
    while(i<201)
    {
        j = 2;
        while(j<i)
        {
            if((i%j) == 0)
            {
                printf("%d\n",i);
                break;
            }
            j++;
        }
        i++;
    }

    return 0;
}

这个运行一下得到的是不是素数的,当我把if语句变成if((i%j) != 0)时,却只能得到199和200俩
个数字!求大神指点一下!!!
搜索更多相关主题的帖子: 输出 素数 int while if 
2018-07-29 20:11
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:6 
程序代码:
#include <stdio.h>
int main()
{
int n,count;
int i;
for(n=101; n<=200; n++)
{
count=0; //每次都需要初始化count
for(i=2; i<n; i++)
{
if(n%i==0)
count++;
}
if(count ==0)
printf("%d\n",n);
}
}
2018-07-29 20:35
no1xijin
Rank: 9Rank: 9Rank: 9
来 自:江西
等 级:贵宾
威 望:20
帖 子:211
专家分:1207
注 册:2015-7-8
收藏
得分:7 
或许你对素数的判断条件不是很清楚,你再仔细搜下素数判断的条件再对照代码理解下。

程序代码:
#include <stdio.h>
int main()
{
    int i, j;
    int flag; // 素数标记,0表示不是素数,1表示是素数

    i = 101;
    while(i<201)
    {
        j = 2;
        flag=1; // 假定是素数
        while(j<i)
        {
            if((i%j) == 0)  //不是素数的条件
            {
               // printf("%d\n",i);
                flag=0;
                break;
            }
            j++;
        }
        if(flag==1)
            printf("%d  ",i);  // 输出素数
        i++;
    }
    printf("\n");  // 换行
    return 0;
}


126邮箱联系方式:no1xijin@126. com
2018-07-29 20:41
流浪猪头
Rank: 2
等 级:论坛游民
帖 子:40
专家分:65
注 册:2018-7-23
收藏
得分:7 
回复 楼主 小白瘤
你这个判断是否是素数的条件有问题,可以这样改:

程序代码:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i, j;
    int b=1;//判断一个数是否是素数的状态参量 
    i = 101;
    while(i<201)
    {
        b=1;j = 2;
        while(j<i)
        {
            if((i%j) == 0)
            {
                b=0;break;
            }
            j++;
        }
        if(b==1) printf("%d\n",i);
        i++;
    }

    return 0;
}
2018-07-29 20:42
流浪猪头
Rank: 2
等 级:论坛游民
帖 子:40
专家分:65
注 册:2018-7-23
收藏
得分:0 
我网不好,要不然我就是顶层了
2018-07-29 20:43
小白瘤
Rank: 1
来 自:江西
等 级:新手上路
帖 子:10
专家分:0
注 册:2018-7-28
收藏
得分:0 
谢谢各位!!!
2018-07-29 21:21
kfyniriu
Rank: 6Rank: 6
等 级:侠之大者
威 望:9
帖 子:105
专家分:426
注 册:2018-7-6
收藏
得分:0 
#include<stdio.h>
#include<math.h>

int main()
{
    int i,j;
    for(i=101;i<200;i++)
    {
        for(j=2;j<sqrt(i);j++)
            if(i%j==0)
                break;
        if(j>sqrt(i))
            printf("%d\t",i);
    }
    printf("\n");
    return 0;
}
2018-07-30 23:16
快速回复:输出101到200以内所有的素数。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018929 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved