标题:求100到200之间的素数
只看楼主
redunkind
Rank: 2
等 级:论坛游民
帖 子:36
专家分:14
注 册:2011-4-10
结帖率:50%
已结贴  问题点数:20 回复次数:10 
求100到200之间的素数
描述
输出100->200之间的素数的个数,以及所有的素数。
输入

输出
100到200之间的素数
样例
输入

输出
21
101 103 。。。。。197 199
注意每个数之间有空格,最后一个没空格
搜索更多相关主题的帖子: 100 200 
2011-04-10 12:01
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:5 
程序代码:
root@~ #cat fac.c
#include <stdio.h>

int main (void) {
        int p,d;
        _Bool isp;

        for(p=100;p<=200;p++) {
                isp=1;
                for(d=2;d<p;d++)
                        if(p%d==0) isp=0;
                if(isp!=0) printf ("%i ",p);
        }
        printf ("\n");
        return 0;
}
root@~ #./fac
101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197
199
root@~ #

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-10 12:10
水晰
Rank: 3Rank: 3
来 自:新疆
等 级:论坛游侠
帖 子:39
专家分:113
注 册:2011-4-6
得分:5 
//输出100-200之间的素数和素数的个数,每行7个输出.
#include <stdio.h>
void main()
{
 int i,j,k=0;
 for(i=101;i<200;i++)
 
    for(j=2;j<i;j++)
    {
        if(i%j==0) break;//当不是素数时跳出循环.
        if(j+1==i)//当为素数时。
        {
         printf("%d ",i);//输出素数。
         k++;//计算素数的个数.
         if(k%7==0) printf("\n"); //当每行7个时换行。
        }
    }
    printf("\n");
 printf("素数的个数=%d\n",k);

}
输出结果是:
            101 103 107 109 113 127 131
            137 139 149 151 157 163 167
            173 179 181 191 193 197 199

            素数的个数=21

[ 本帖最后由 水晰 于 2011-4-10 13:56 编辑 ]
2011-04-10 12:59
xiaoqi0110
Rank: 2
等 级:论坛游民
帖 子:55
专家分:52
注 册:2010-8-15
得分:5 
#include<stdio.h>
#include<math.h>
void main()
{
    int i,j,flag,m,count=0;
    for(i=101;i<200;i=i+2)//偶数不可能是素数。
    {
        flag=0;
        m=sqrt(i);//减少计算次数。
        for(j=2;j<=m;j++)
            if(i%j==0)
            {
                flag=1;
                break;
            }
            if(flag==0)
            {
                count++;//用来计数的。
                printf("%d ",i);
            }
               
    }
    printf("\n素数的个数为%d\n",count);
}
2011-04-10 13:04
qianyangwu
Rank: 2
等 级:论坛游民
帖 子:7
专家分:16
注 册:2011-4-10
得分:4 
输入100-200之间的素数,每行输出#include<stdio.h>
#include<math.h>
int main(void)
{
     int i,m,count;
     double n;
     count=0;
     for(m=100;m<=200;m++){
         n=sqrt(m);
         for(i=2;i<=n;i++)
         if(m%i==0) break;
         if(i>n){
             printf("%5d",m);
             count++;
             if(count%8==0)
             printf("\n");
         }
     }
     printf("\n个数=%d",count);
     printf("\n");
}8个:
2011-04-10 18:24
hnuhsg1226
Rank: 9Rank: 9Rank: 9
来 自:中国
等 级:蜘蛛侠
威 望:2
帖 子:314
专家分:1314
注 册:2011-3-27
得分:1 
建议去精华区,看看美琴版主的代码艺术贴,有道题讲求素数的

我的地盘
2011-04-10 18:35
redunkind
Rank: 2
等 级:论坛游民
帖 子:36
专家分:14
注 册:2011-4-10
得分:0 
回复 2楼 ansic
_Bool isp;       这 是什么意思啊??没学到厄
2011-04-11 22:46
redunkind
Rank: 2
等 级:论坛游民
帖 子:36
专家分:14
注 册:2011-4-10
得分:0 
你们这羊到199的时候,199后面还是有空格的厄啊???
2011-04-11 22:49
鲁亦
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-6-14
得分:0 
谢谢,你们的指点!
2014-06-14 20:10
很好吃
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-10-14
得分:0 
回复 4楼 xiaoqi0110
第十三行如果少了 flag=1;  为什么执行的结果就错误了?
2015-10-14 15:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-336162-1-1.html




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

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