本人学生,初学c++,有个题目不知道怎么弄,求大神解决。非常急。

7.计算并输出N以内最大的10个素数以及它们的和,N为用户任意输入的正整数(如:1000)。要求:(1)由于偶数不是素数,可以不考虑对偶数的处理。(2)需要考虑N以内的素... 7.计算并输出N以内最大的10个素数以及它们的和,N为用户任意输入的正整数(如:1000)。
要求:
(1)由于偶数不是素数,可以不考虑对偶数的处理。
(2)需要考虑N以内的素数个数没有超过10个的情况处理。
(3) 输出形式为:素数1+素数2+素数+…+素数10=总和值。
这是本人程序,不知道哪里出错了

#include <iostream>
using namespace std;
int main()
{
int a,b,j,sum=0,i=0;
cout<<"请输入一个正整数:";
cin>>a;
for(b=a;b<=a;b--)
{
for(j=1;j<=b;j++)
{
if(b%j==0)
i++;
}
sum+=b;
}
if(i<10)
cout<<"sum="<<sum<<endl;
return 0;
}
展开
 我来答
zhuhuaizhong
2013-04-21 · TA获得超过7276个赞
知道大有可为答主
回答量:3978
采纳率:63%
帮助的人:3615万
展开全部
你那程序根本就不对,b<=a 显然应该是b >=1
另外你只输出了 sum ,而且判断是否素数的过程也不对。

给你代码参考,但一定要读懂了

void main()
{
int n ;
int count=0;
double sum=0;
cout<<"input n";
cin>>n;

for(int i=n;i>=1;i--)
{
if(i%2==0)
continue;//偶数不处理
for(int j=2;j<=i-1;j++)
{
if(i%j==0)
break;//如果整除了跳出,说明不是素数
}
if(j==i)//说明是素数
{
count++;//计数器+1
if(count<=10)
{
cout<<i<<"+";//还没到十个就输出并求和
sum+=i;
}
else
break;//否则数量够了直接跳出,不在判断下边的了
}
}
cout<<"\b="<<sum<<endl;//输出\b去掉最后的+号
}
追问
看懂了,不过够晕的,没想到这么复杂,谢了。
xiaolun217001
2013-04-21 · TA获得超过428个赞
知道小有建树答主
回答量:347
采纳率:100%
帮助的人:285万
展开全部

程序的逻辑存在很多问题

1 第一个for循环判断条件应该是b>1

2 没有判断是否为素数就直接求和

程序我修改一下,测试ok,你测试一下看,有问题再交流,多谢~

#include <iostream>

using namespace std;

int main()

{

 int a,b,j,sum=0,i=0;

    bool bFlag = false;

 cout<<"请输入一个正整数:";

 cin>>a;

 

 for(b=a; b>=2; b--)

 {   

  bFlag = true;

  for(j=2;j<b;j++) 

  {   

   if(b%j==0) 

   {

                bFlag = false;

    break;

   } 

  }

  if (bFlag)

  {

   ++i;

   sum+=b;

   if(i<10)

   {

    cout<<b<<"+";

   }

   else

   {

    cout<<b<<"=";

    break;

   }

  }

 }

    if(i<10)

 {

     cout<<b<<"=";

 }

 cout<<sum<<endl;

 return 0;


 

 

运行结果:

 

 

追问
其实你的也行,不过人家比你回答得快,所以不好意思了,感觉学这个好辛苦。
追答
是呀,没有什么捷径,只能多看书,多思考,多练习~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-21
展开全部
我去你的,看不懂,我只是来混经验的
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jlyzlzb
2013-04-21 · TA获得超过163个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:89.2万
展开全部
晕啊,你的逻辑!出了啥问题了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式