| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 875 人关注过本帖
标题:输出10000以内的素数,程序无错,求优化。
只看楼主 加入收藏
wo叫xiao宝
Rank: 1
来 自:南昌
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-11-18
结帖率:66.67%
收藏
已结贴  问题点数:1 回复次数:7 
输出10000以内的素数,程序无错,求优化。
#include <stdio.h>
#include <math.h>
void main()
{
    int j=0,n,k,i,flag;
    printf("\n");

    for(n=1;n<10000;n=n+2)
    {
        k=sqrt(n);
        flag=0;
        i=2;
       while((i<=k)&&(flag==0))
        {
        if(n%i==0)
           flag=1;
          i=i+1;
        }
       if(flag==0)
        {
          j=j+1;
          printf("%5d",n);
            if(j%10==0)
              printf("\n");
        }
    }
    printf("\n");

}


输出10000以内的素数。。。求优化!!!
搜索更多相关主题的帖子: 10000 
2012-11-22 19:10
矿大李威
Rank: 1
等 级:新手上路
帖 子:3
专家分:1
注 册:2012-11-22
收藏
得分:1 
# include <stdio.h>
# include <math.h>

int main(void)
{
    int i = 4;
    int t;
printf("2 3\n");

    for (i; i<=10000; i++)
    {
        t = sqrt(i);
        if (i%2 == 0 || i%3==0 || i%5==0 || i%7==0)
            continue;
        for (int j=11; j<=t; j++)
             {
               if (i%j == 0)
                   break;
             }
        if (j == t+1)
            printf("%d\n", i);

    }
    return 0;
}
2012-11-22 22:37
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:0 
可以啦,还要优化到啥地步啊,这是经典的方法了,有更好的话应该早就取代他了吧

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-22 22:37
wo叫xiao宝
Rank: 1
来 自:南昌
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-11-18
收藏
得分:0 
我想用数组来优化他,但不知怎么弄

小白一个 !
2012-11-24 22:11
whhguo
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:42
专家分:119
注 册:2012-11-21
收藏
得分:0 
定义一个数组,长度设为200,把前面得到的素数存在里面,判断的时候直接除以遍历该数组,就行了。。。
本人java,用C写不来...
2012-11-24 23:20
mystery1021
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-8-20
收藏
得分:0 
程序代码:
#include <iostream>
using namespace std;
int a[10001];
int main()
{
    int i,j,n;
    while(cin >> n)
    {
        for(i = 2 ; i <= n ; ++i)
        {
            if(a[i] == 0)
            {
                for(j = i + i ; j <= n ; j +=i)
                a[j] = 1;
            }
        }
    
        for(i = 2 ; i <= n ;++i)
        if(a[i] == 0)
        cout << i << ' ' ;
        cout << endl;
    }
    return 0;
}
这是输出1~n的素数,用筛选法
2012-11-30 20:11
lq1078
Rank: 1
等 级:新手上路
帖 子:10
专家分:2
注 册:2012-11-22
收藏
得分:0 
2012-12-05 07:06
qq872551969
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:1
帖 子:241
专家分:1377
注 册:2012-7-13
收藏
得分:0 
怎么跟C语言这么像呢

编程交流请加群:【234181324】,一起学习,一起进步,新建的群,主打C语言和JAVA等程序设计,等待高手们的入驻,无论你是高手也好,新手也好,在这里都是平等的,欢迎你们的加入~!【234181324】
2012-12-05 12:13
快速回复:输出10000以内的素数,程序无错,求优化。
数据加载中...
 
   



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

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