| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 408 人关注过本帖
标题:关于求素数的问题
取消只看楼主 加入收藏
yu1543054075
Rank: 1
等 级:新手上路
帖 子:102
专家分:8
注 册:2015-4-30
结帖率:90.24%
收藏
已结贴  问题点数:18 回复次数:0 
关于求素数的问题
求素数中100~200的全部素数。
技术要点:
素数是大于1的整数,除了能被自身和1整除外,不能被其他正整数整除,本势力的算法是这样的,让i到根号i整除,如果i能被i到根号i任意一个数
整除,则结束循环,若不能整除则要判断j是否是最接近或等于根号i的,如果能则证明是素数,否则继续下次循环。
#include<stdio.h>
#include<math.h>
int main(void)
{
    int i,j,n=0;
    for(i=100;i<=200;i++)
        for(j=2;j<<2<=i;j++)//这里我用j<<2代替了j*j,如果我换成j*j就会编译正确,不知道错在哪里
            if(i%j==0)
                break;
            else if(j>sqrt(i)-1)
                {
                    printf("%d ",i);
                    n++;
                    if(n%5==0)
                    putchar('\n');
                }
            else
                continue;
}
编译后会出现下面的结果:
101 101 101 101 101
101 101 101 101 101
101 101 101 101 101
101 103 103 103 103
103 103 103 103 103
103 103 103 103 103
103 103 ……
请诸位多多指点
搜索更多相关主题的帖子: include 正整数 技术 
2015-05-03 20:04
快速回复:关于求素数的问题
数据加载中...
 
   



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

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