请教一下几个C++的问题
求解1000内的素数
#include "stdafx.h"
#include <math.h>
#include <iostream.h>
void main()
{int a,b,c;
int n=1;
cout<<"2"<<" ";
for(a=3;a<=1000;a++)
{c=1;
for(b=2;b<=a;b++)
{if(a%b==0)
{c=0;
break;
}
if(c==0)break;
else cout<<a<<" ";}
n++;}
cout<<endl<<"n="<<n<<endl;}
求各位数字之和等于该数本身的四位数
#include "stdafx.h"
#include <iostream.h>
void main()
{int e;
int n=0;
int a=e/1000;
int b=e/100-a*10;
int c=e/10-a*100-b*10;
int d=e-1000*a-b*100-c*10;
for(e=1000;e<=9999;e++)
{if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==e)
{cout<<" "<<e<<" ";
n++;
if(n%5==0)cout<<endl;}
}}
这两个程序都有问题,请高手看一下,麻烦详细说一下错误,那个求四位数中用我的那种方法求千、百、十、个位为什么错了?
参考答案:第一个问题:for(b=2;b<=a;b++) 有问题,应为for(b=2;b<a;b++)
第二个问题:int a=e/1000;
int b=e/100-a*10;
int c=e/10-a*100-b*10;
int d=e-1000*a-b*100-c*10; 应该在for循环之内
判断条件if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==e)
应为if(a*1000+b*100+c*10+d==e)