| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 594 人关注过本帖
标题:素数C程序有两个问题
只看楼主 加入收藏
我爱吃青菜
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:190
专家分:500
注 册:2015-3-29
收藏
得分:3 
sqrt()的值是浮点型,是近似储存。比方说,sqrt(100)可能存成10.000000,也可能是9.999999,如果是后者,转成整型就是9了。sqrt(101)就会保险一点
2015-04-23 09:12
陆思雨
Rank: 2
等 级:论坛游民
威 望:1
帖 子:36
专家分:42
注 册:2014-9-17
收藏
得分:0 
回复 11楼 我爱吃青菜
还有个问题,k是int型,怎么能等于浮点型?这是书上抄下来的程序,我觉得不怎么对。谢谢大神
2015-04-23 09:19
我爱吃青菜
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:190
专家分:500
注 册:2015-3-29
收藏
得分:1 
sqrt()先算出double的数,算好才传给int的k
2015-04-23 09:31
我爱吃青菜
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:190
专家分:500
注 册:2015-3-29
收藏
得分:1 
那不是等号,是赋值号。k只是取了sqrt()的整数部分而已
2015-04-23 09:37
yl100124
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2012-12-25
收藏
得分:0 
质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被整除以其他自然数(质数),换句话说就是该数除了1和它本身以外不再有其他的因数。
2015-04-23 09:39
我爱吃青菜
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:190
专家分:500
注 册:2015-3-29
收藏
得分:0 
比如判断25是不是素数,如果sqrt(25)保存成4.999999,那k就是4,就会拿25对2,3,4求余,没有考虑5,就会误判25是素数。而如果sqrt(25+1)的话,结果是五点几,就能保证能对5求余。
2015-04-23 09:47
陆思雨
Rank: 2
等 级:论坛游民
威 望:1
帖 子:36
专家分:42
注 册:2014-9-17
收藏
得分:0 
回复 16楼 我爱吃青菜
这个我是理解了。还有就是求素数的算法就只有这一种吗?应该还有其他的吧?求大神赐教
2015-04-24 23:45
·charles
Rank: 2
等 级:论坛游民
帖 子:67
专家分:48
注 册:2015-3-23
收藏
得分:3 
求素数用筛选好做,效率高
#include "stdio.h"
#include "math.h"
int main()
{
    int i,j,a[101];
    for(i=1;i<=100;i++)           /*数组依次存放数据*/
        a[i]=i;
        
    for(i=2;i<sqrt(100);i++)
        for(j=i+1;j<=100;j++)                  /*如果j能被i整除则不是素数,a[j]置0*/
        {
            if(a[i]!=0&&a[j]!=0)
            if(a[j]%a[i]==0)
                a[j]=0;
        }

    for(i=2;i<100;i++)
    {
        if(a[i]!=0)                         /*a[i]非0,则是素数*/
            printf("%d\t",a[i]);
    }
   
    return 0;
}

[ 本帖最后由 ·charles 于 2015-4-25 00:28 编辑 ]

编程!编程!!编程!!!
重要的事情说三遍!!!!
2015-04-25 00:22
快速回复:素数C程序有两个问题
数据加载中...
 
   



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

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