| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1206 人关注过本帖
标题:这个问题我已经想了好几个小时了还是没思路,求高手指点
只看楼主 加入收藏
王超chao
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-10-3
收藏
 问题点数:0 回复次数:10 
这个问题我已经想了好几个小时了还是没思路,求高手指点
给定一个整数m(m>200),找出小于m的最大的十个素数
搜索更多相关主题的帖子: 最大的 
2011-10-23 19:49
weiwei555
Rank: 5Rank: 5
来 自:中国
等 级:职业侠客
帖 子:179
专家分:323
注 册:2011-3-4
收藏
得分:0 
这个问题,大家相信楼主有办法,再想想哈……
加油!
2011-10-23 19:55
王超chao
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-10-3
收藏
得分:0 
啊啊!
2011-10-23 19:59
落叶风
Rank: 2
等 级:论坛游民
帖 子:22
专家分:53
注 册:2011-6-22
收藏
得分:0 
相信相信。。。。。。。。。。。。。。加油啊
2011-10-23 20:03
丞相杀手
Rank: 6Rank: 6
等 级:侠之大者
帖 子:203
专家分:462
注 册:2011-1-11
收藏
得分:0 
先想想怎么判断一个数是素数,写出一个布尔型的函数,已一个整数为参数,返回这个数是否为素数

然后,用一个循环遍历m到1之间的整数,判断每一个数字是否为素数,是则输出,否则不输出

遍历过程中用一个变量记录已经找到的素数的个数,达到要求的个数的时候,终止循环,程序结束


不要让我给你写代码……

斗不过疯子,不参与争论。
2011-10-23 20:10
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
你没有给最大范围  可以先把小于这个数素数全部筛出来

然后从后往前找是个素数  重要的在于筛选 下面的代码是我写的筛选代码

                                         
===========深入<----------------->浅出============
2011-10-23 20:14
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string>
using namespace std;
#define MAX 1001
int fun(int lim,bool foot[MAX])
{
    memset(foot,0,lim);
    int i,j,k = 0;
    for(i = 2;i<=lim;i++)
    {
        if(!foot[i])//此处1表示不是素数0表示是素数
        {
            for(j = 2;j*i<=lim;j++)
            {
                if(!foot[j*i])
                {
                    foot[j*i] = true;
                    k++;
                }
            }
        }
    }
    return lim-k-2;
}
int main()
{
    bool foot[10000];
    int sum = fun(22,foot);
    return 0;
}



                                         
===========深入<----------------->浅出============
2011-10-23 20:15
王超chao
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-10-3
收藏
得分:0 
谢谢大家了
2011-10-23 20:23
王超chao
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-10-3
收藏
得分:0 
终于做出来了
2011-10-23 20:44
xp420678
Rank: 2
等 级:论坛游民
帖 子:9
专家分:16
注 册:2011-10-23
收藏
得分:0 
#include<stdio.h>
main()
{
    int m,i,j,k=0;
    printf("请输入一个数(m>200)");
    scanf("%d",&m);
    for(i=m;i>0;i--)
    {for(j=2;j<i;j++)
    if(i%j==0)
        break;
    if(j==i)
    {printf("%d  ",j);
    k++;}
    if(k==10)
        break;
    }
}
2011-10-23 23:40
快速回复:这个问题我已经想了好几个小时了还是没思路,求高手指点
数据加载中...
 
   



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

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