| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 453 人关注过本帖
标题:循环求素数,有处赋值不理解,希望有朋友能教下我!
只看楼主 加入收藏
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
结帖率:84.21%
收藏
已结贴  问题点数:20 回复次数:3 
循环求素数,有处赋值不理解,希望有朋友能教下我!
#include"math.h"
#include"stdio.h"
void main()
{
    int m,i,k,n=0;                                    //定义初值,4个整型,且n赋值为0
    for(m=101;m<200;m=m+2)                            //for循环,从100到200之间求素数.
    {
         k=sqrt(m);                                   //求根
         for(i=2;i<=k;i++)                            //进行赋值,并进入for循环,且i循环出所求数所有质数.
            if(m%i==0)  break;                        //能整除,那么这个数一定不是素数,所以跳出。

        if(i>=k+1)                            // 问题在此!, 为什么i的值能够大于k+1,.前面已经for循环提出,
        {                                     // i的值最大是小于等于k的.   
            printf("%4d",m);
            n=n+1;        
        }
        if(n%10==0)
        printf("\n");
    }
    printf("\n");
}
搜索更多相关主题的帖子: 素数 赋值 朋友 
2010-11-19 23:01
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:10 
回复 楼主 默默学习
因为如果n是质数的话。你最后一次进入循环时的i值应该是k
然后再进行一次i++就变成了k+1了啊

南国利剑
2010-11-20 01:09
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:10 
所以最后的i是等于k+1
而不是大于
所以你可以把if的条件改成i == k

南国利剑
2010-11-20 01:11
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
收藏
得分:0 
回复 2楼 南国利剑
谢谢,呵呵`我昨天其实想出来了。汗``先等了半天,没人帮忙。不过还是谢谢你了!
2010-11-20 12:33
快速回复:循环求素数,有处赋值不理解,希望有朋友能教下我!
数据加载中...
 
   



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

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