| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1018 人关注过本帖
标题:新手写了个 打印100以内所有质数 ,求教
只看楼主 加入收藏
start1980
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-10-15
收藏
 问题点数:0 回复次数:13 
新手写了个 打印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
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
#include <stdio.h>
 #include <stdlib.h>
 int main()
 {
     int i,j;
     for(i=2;i<=100;i++)  //从2到100这些数中找质数
     {
         bool flag = true;

         for(j=2;j<=i /2;j++)  
         {
             if (j % i == 0) {flag = false;break}
         }
        if (flag) printf("%d ",i);
     }
     system("pause");
     return 0;
 }

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-10-15 22:21
zmm854424789
Rank: 1
等 级:新手上路
帖 子:18
专家分:5
注 册:2013-10-15
收藏
得分:0 
新手同学,刚学完for循环,表示很有兴趣
2013-10-15 22:24
zmm854424789
Rank: 1
等 级:新手上路
帖 子:18
专家分:5
注 册:2013-10-15
收藏
得分:0 
回复 3楼 zmm854424789
我意思是我也是新手。。。。
2013-10-15 22:25
zmm854424789
Rank: 1
等 级:新手上路
帖 子:18
专家分:5
注 册:2013-10-15
收藏
得分:0 
回复 2楼 yuccn
版主,能加下QQ么?我是大一通信新生,大二才开C语言,现在在自学,有很多问题想请教你
2013-10-15 22:26
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
cink10
Rank: 2
等 级:论坛游民
帖 子:10
专家分:12
注 册:2013-10-15
收藏
得分:0 
回复 6楼 start1980
假设i是偶数,最小整除可以除以2得到i/2,比如12/2=6,最大整除就是6,超过6的肯定不能整除。奇数最小整除肯定大于2,最大整除的肯定小于i/2,所以j<=i/2就行了,当然j<i也行。
2013-10-15 23:36
hh373231690
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:138
注 册:2012-10-13
收藏
得分:0 
#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++) //这里的条件j <= a-1肯定是不对的,仔细想想质数是怎么判断的
         {
             if(i%j!=0)   
             break;//这里的break只是跳出了里层的for循环
         }
         printf("%d ",i);//这里打印i的值跟你的判断完全无关 所以肯定是2-100全部打印
     }
     system("pause");
     return 0;
 }
2013-10-16 09:53
电线杆
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-10-16
收藏
得分:0 
if (j % i == 0) {flag = false;break}  这句是不是有点问题?应该是if (i % j == 0){flag = false;break;}
2013-10-16 10:29
liuchaowangl
Rank: 2
等 级:论坛游民
帖 子:6
专家分:23
注 册:2013-10-16
收藏
得分:0 
#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;
}
2013-10-16 11:03
快速回复:新手写了个 打印100以内所有质数 ,求教
数据加载中...
 
   



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

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