求100以内素数:
算法1:
#include<iostream>
using namespace std;//编译命令
#include<math.h>
const int MAX=100;//定义常量MAX
int main()//主函数
{
int prime[MAX+100]={0};//定义变量并初始化
int i,j,k=sqrt(MAX);
for(i=2; i<=k; i++)//枚举筛数
{
if(prime[i]==0)//如果这个数没被筛,就看看
{
j=i*2;//将原数扩大二倍初始化给j
do
{
prime[j]=1;//将j筛掉
j+=i; //再扩大一倍
}
while(j<=MAX);//直到最大
}
}
for(i=2; i<=MAX; i++)
{
if(prime[i]==0)//循环输出
cout<<i<<" ";
}
cout<<endl;
return 0;//主函数结束
}
求100以内的完数
using namespace std;
int main()
{
cout <<"100以内的完数有: "<<'/n';
for (i=1;i<=100;i++)
{
for (j=1;j<=i/2;j++)
if (i%j==0) sum+=j;
if (i==sum)
{
for (j=1;j<=i/2;j++)
if (i%j==0) cout <<j<<",";
cout <<'/n';
}
}
return 0;
}
#include<iostream.h>
int main()
{
int i,j,k;
for(i=1;i<=9;i++) //注意:最高位取值范围1~9
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
if(i*i*i + j*j*j + k*k*k == i*100 + j*10 + k)
cout<<i<<j<<k<<"是水仙花数/n";
system("pause");
}
版本二:
#include<iostream.h>
int main()
{
int a,b,c;
for(int i=100;i<=999;i++)
{
a=i/100;
b=i/10%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
cout<<i<<"是水仙花数"<<endl;
}
system("pause");
}