| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5538 人关注过本帖
标题:求3到100 之间的素数的平方根的和的编程
只看楼主 加入收藏
芸芸众生丫
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-4-5
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
求3到100 之间的素数的平方根的和的编程
#include<stdio.h>
#include<math.h>
int main()
{
    int i,j,a;
    double s = 0;
    for(i=3;i<=100;i++)
    {
        for(j=2;j<=i;j++)
        {
          if(i%j==0)
          {
               break;
          }
         else
         {
             a = sqrt(i);
         }
          }
        s = s + a;
    }
    printf("%lf",s);
}
最后运行出来的结果不正确,有谁可以帮我看看哪里出问题了,刚刚接触嵌套循环不太懂。
搜索更多相关主题的帖子: include double 平方根 
2016-04-05 18:25
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:7 
程序代码:
#include<stdio.h>
#include<math.h>
int main()
{
    int i,j,a;
    double s = 0;
    for(i=3;i<=100;i++)
    {
        for(j=2;j<=i;j++)
        {
          if(i%j==0)
          {
               break;
          }
        }
        if(j>i){
          a = sqrt(i);
          s = s + a;
       }
    }
    printf("%lf",s);
}

未佩好剑,转身便已是江湖
2016-04-05 18:35
小白小白一只
Rank: 2
来 自:吉林大学
等 级:论坛游民
帖 子:16
专家分:41
注 册:2016-3-30
收藏
得分:7 
a =sqrt (i  )这个步骤有问题,不能嵌套在第二个for 循环中,否则导致每一步符合循环中条件的元素都平方相加了~~
2016-04-05 22:35
处处蝴蝶飞
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2016-3-25
收藏
得分:7 
回复 楼主 芸芸众生丫
#include<stdio.h>
#include<math.h>
int main()
{
    int i,j,a;//你把a定义为整形,后面的“a=sqrt(i)”发生类型强制转换,这里数据就失真了。因为sqrt(i)的值本是浮点型的。
    double s = 0;
    for(i=3;i<=100;i++)
    {
        for(j=2;j<=i;j++)
        {
          if(i%j==0)
          {
               break;
          }
         else
         {
             a = sqrt(i);
         }//第二个for循环中:if和else是一个语句啊,执行了i-1次跳过if语句,就执行else语句了。
          }
        s = s + a;
    }
    printf("%lf",s);
}
参考代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
    int i,j;
    double a,s=0;//把a定义为double型为宜。
    for(i=3;i<100;i++)
        for(j=2;j<i;j++)
        {
            if(i%j==0)
                break;
            if(j==i-1)//执行到此步,可以判定i为素数。
            {
                a=sqrt(i);
                s=s+a;
            }
        }
        printf("%lf\n",s);
}
上面的算法还可以再优化一下。
2016-04-05 23:47
快速回复:求3到100 之间的素数的平方根的和的编程
数据加载中...
 
   



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

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