永发信息网

C语言中求质数过程是怎样的

答案:2  悬赏:80  手机版
解决时间 2021-04-02 21:57
C语言中求质数过程是怎样的
最佳答案
设有数x、y,且想x^2=y;
又有a、b,a>b,a*b=y,那么a>x>b;故只找x底下的值即可知道y有没有因子;
    for(i=2;i<=50;i++)
    {
        for(n=2;n<=(int)sqrt(i);n++)
            if(i%n==0)            //如果n是i的因子即退出
            break;
        if(n==(int)sqrt(i)+1)        //n==(int)sqrt(i)+1就是在上面循环没找到i的
                                        因子,即i是质数
            printf("%d ",i);
}
全部回答

判断一个数是不是素数(就是你说的质数),用下面的方法(筛选法):
从2开始,那么2的倍数就不是素数;
然后是3,那么3的倍数就不是素数;
然后是5(4已经被排除了),那么5的倍数就不是素数。
以此类推。下面给出筛选法的代码(判断10以内的素数有几个,4个)



但是你的那个不是用筛选法,你的是根据素数的定义:一个数,除了他本身和1,其他的数不是他的因子,那么这个数就是素数(1不是啊,从2开始算的)。


比如15不是素数,因为他的因子有1 3 5 15,
比如19是素数,因为他的因子只有1和19。
关于你的那个代码,我写了一个:
#include
int main(void)
{
    int i,s,k,count=0;
    for(i=100;i<=200;i++)
    {
        k=sqrt(i);
        for(s=2;s<=k;s++)
        {
            if(i%s==0)break;
        }
        if(s==k+1)
        count++;
    }
    printf("%d ",count);
    for(i=100;i<=200;i++)
    {
        k=sqrt(i);
        for(s=2;s<=k;s++)
        {
            if(i%s==0)break;
        }
        if(s==k+1)
        printf("%d ",i);
    }
    return 0;
}
 写的这么详细,不采纳我,好伤心。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
1Cr18Ni9Ti对15Cr1MoV用什么材质
教师职称评审将被取消,未来影响教师工资因素
1987年1月30日出生到2016年的虚龄是多少岁
电脑右下角出现ad字,画面退不出什么原因
迪奥凝脂高效保湿粉底液哪个色号是自然色
SEO在未来会是什么样?
为什么y=x与y=³√x³是同一个函数,
怎么提防一些企业骗设计方案
单选题下列说法不正确的是A.纸层析法中的展开
M、X、Y、Z是四种元素,其常见化合价均为+2
我在一家很大的饰品看到一款VOV的粉饼才22元
馨迪幼儿园地址在哪,我要去那里办事,
请问小汤4和大汤1哪个里面的曲子难度大?
大牛市亏大钱,正常吗?
什么才是顶尖的Linux开源人工智能工具
推荐资讯
20几乘以几十6等于162
根号24 是多少 是怎么开出来的
2018年5月 女排欧冠决赛 哪里 有直播吗
根据采样定理,采样周期应该满足什么条件
一屠晚归,担中肉尽的意思
人生有时候觉得有一种挫败感,有时候又会觉得
战牛有没有人用过?效果怎么样?朋友圈都卖疯
酒驾发生交通事故后酒驾司机死亡怎么赔偿
拳皇全集加强版下载
纯粹视觉大众口碑怎么样
iphone游戏充值不了怎么办?
屋顶干瓦是否需要防水层?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?