| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1018 人关注过本帖
标题:新手写了个 打印100以内所有质数 ,求教
取消只看楼主 加入收藏
start1980
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-10-15
收藏
 问题点数:0 回复次数:4 
新手写了个 打印100以内所有质数 ,求教
打印100以内质数,请帮我看看,我打印出来是2-100,该怎么改,新手在此感过!


#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,i,j;
    a=100;
    for(i=2;i<=100;i++)  //从2到100这些数中找质数
    {
        for(j=2;j<=a-1;j++)  
        {
            if(i%j!=0)   
            break;
        }
        printf("%d ",i);
    }
    system("pause");
    return 0;
}
搜索更多相关主题的帖子: include 
2013-10-15 22:08
start1980
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-10-15
收藏
得分:0 
很感谢版主的帮助,
bool flag = true;//这句没看明白

for(j=2;j<=i /2;j++) //为什么j<=i/2  二分之一i不明白
2013-10-15 22:36
start1980
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-10-15
收藏
得分:0 
以下是引用liuchaowangl在2013-10-16 11:03:01的发言:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,i,j;
    int ide=1;
    a=100;
    for(i=2;i<=100;i++)  //从2到100这些数中找质数
    {
        //质数特点是只有公约数1和本身,如果m被1-m之间某个n整除,m%n=0则m肯定不是质数
        for(j=2;j<i;j++)
        {
            if(i%j==0)
            {ide=0;break;}
        }
        if(1==ide)
        {
            printf("%d ",i);
        }
        else
        {
            ide=1;
        }
    }
    system("pause");
    return 0;
}



谢谢楼主,你的代码我看懂了。

if(1==ide)  这句写成  (ide==1)也一样吧

else  {ide=1}   //意思是从最上面ide=1处开始循环吧?
2013-10-16 21:12
start1980
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-10-15
收藏
得分:0 
感谢大家的帮助,在这个大家庭中,感觉很温暖。

10的朋友,我按你的思路写了,你的写法我最容易懂,可能我是新手的原因。

我加了注释,大家看,我的理解对不对?

程序代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,b,flag;
    flag=1;
    for(a=2;a<=100;a++) //从2-100中找质数
    {
        for(b=2;b<a;b++) //如判断数a是否为质数,需要从2至a-1都要除一遍
        {
            if(a%b==0)
            {flag=0;break;} //如果结果为假,则跳出内循环,重新外循环        
        }
            if(flag==1) //如果结果为真,则打印这个数
            {
                printf("%d ",a);
            }
            else    //否则就重新执行外层循环
                flag=1;
    }
    system("pause");
    return 0;
}

2013-10-16 21:37
start1980
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-10-15
收藏
得分:0 
回复 7楼 cink10
终于完全弄懂了,谢谢这位兄弟!

比如:8/2=4,如果除以4以上的数,肯定不会整除;14/2=7,14除以7以上的数,也不会整除。

再次感谢。
2013-10-17 19:17
快速回复:新手写了个 打印100以内所有质数 ,求教
数据加载中...
 
   



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

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