| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 382 人关注过本帖
标题:新手求教 很简单的程序....求秒啊
只看楼主 加入收藏
naweixiaoduo
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-13
结帖率:0
收藏
已结贴  问题点数:5 回复次数:9 
新手求教 很简单的程序....求秒啊
//求1000以内的素数和
//Data: 2012.11.12
#include<stdio.h>
main()
{  int n,i,sum=0;
   for(n=2;n<=1000;n++)
   {
       for(i=2;i<=n-1;i++)
            
           if(n%i==0);
           {   
               break;
           }
           if(i>n-1)
           sum+=n;
   }

           printf("%d\n",sum);
   }
2012-11-13 18:50
naweixiaoduo
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-13
收藏
得分:0 
哪里有错误啊..是不是逻辑出错了..
求教...
2012-11-13 18:50
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:1 
很显然,你逻辑出错了


[fly]存在即是合理[/fly]
2012-11-13 18:58
naweixiaoduo
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-13
收藏
得分:0 
回复 3楼 azzbcc
说一下   哪里逻辑问题
2012-11-13 19:00
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
这种问题  
你搜索本论坛  
关键词  素数

一堆堆

DO IT YOURSELF !
2012-11-13 19:07
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
逻辑没错,是我看错了

 if(n%i==0);多了一个分号


[fly]存在即是合理[/fly]
2012-11-13 19:17
bok002121
Rank: 2
等 级:论坛游民
帖 子:90
专家分:26
注 册:2012-11-11
收藏
得分:1 
(i=2;i<sqrt(n);i++)就可以了,少算很多......
2012-11-13 19:51
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
收藏
得分:1 
回复 楼主 naweixiaoduo
这是我的见解~~~~
#include<stdio.h>
#include <math.h>
#define  N 1000
void main()
{  int n,i,sum=0;
    for(n=N;n>=2;n--)
    {
        for(i=2;i<=sqrt(n);i++)
        {   
            if (n%i==0)
            {
                n--;
                i=1;
                continue;   
            }         
        }
        printf("%d\t",n);
        sum+=n;
    }
    printf("\n%d\n",sum);
}
图片附件: 游客没有浏览图片的权限,请 登录注册


2012-11-13 20:16
小旭哥
Rank: 2
等 级:论坛游民
帖 子:106
专家分:72
注 册:2012-11-4
收藏
得分:1 
#include<stdio.h>
#include<math.h>

int main()
{
    int n,i,sum=0;
    int mark;    //1表示它是素数,2表示它不是素数

    for(n=2;n<=1000;n++)
    {
        mark = 1;

        for(i=2;i<=sqrt( n );i++)
            if(n%i==0)
            {
               mark = 0;   //不是素数
               break;
            }

        if( mark )  //如果是素数
           sum+=n;
    }
 
    printf("%d\n",sum);
}

我觉得我这个代码应该稍微好理解点,答案和上一楼的同志是一样的
2012-11-13 20:40
小旭哥
Rank: 2
等 级:论坛游民
帖 子:106
专家分:72
注 册:2012-11-4
收藏
得分:0 
上面有句注释说错了   1表示它是素数,0表示不是
2012-11-13 20:41
快速回复:新手求教 很简单的程序....求秒啊
数据加载中...
 
   



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

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