您的位置:首页 > 编程语言 > C语言/C++

c++第七次作业

2016-06-06 00:40 211 查看
一  .特殊三位数

#include<iostream>
using namespace std;

int fac(int n)
{
int i, m=1;
for(i=1;i<=n;i++)
m=m*i;
return m;
}

int main()
{
int a,b,c,sum;
int n;
for(n=100;n<=1000;n++)
{
c=n%10;
b=(n/10)%10;
a=n/100;
sum=fac(a)+fac(b)+fac(c);
if(sum==n)
cout<<n<<endl;

}
return 0;
}


二.素数与回文
#include <iostream>
using namespace std;
int isPrimer(int);
int isPalindrome(int);
int opposite(int);
int main()
{
int i,p;
cout<<"素数:"<<endl;
for(i=1;i<=300;i++)
{
if(isPrimer(i))
{
cout<<"\t"<<i;
}
}
cout<<endl;
cout<<"回文数:"<<endl;
for(i=1;i<=300;i++)
{
if(isPalindrome(i))
{
cout<<"\t"<<i;
}
}
cout<<endl;
cout<<"回文素数:"<<endl;
for(i=1;i<=300;i++)
{
if(isPrimer(i)&&isPalindrome(i))
{
cout<<"\t"<<i;
}
}
cout<<endl;
cout<<"可逆素数有:"<<endl;
for(i=1;i<=300;i++)
{
if(isPrimer(i))
{
p=opposite(i);
if(isPrimer(p))
{
cout<<"\t"<<i;
}
}
}
cout<<endl;
return 0;
}
int opposite(int n)
{
int a[5];
int i=0,j,p=0;
while(n!=0)
{
a[i]=n%10;
n=n/10;
i++;
}
for(j=0;j<i;j++)
{
p=a[j]+p*10;
}
return p;
}
int isPrimer(int n)
{
int i,k=0;
for(i=n-1;i>1;i--)
{
if(n%i==0)
k++;
}
if(k>0)
return 0;
else
return 1;
}
int isPalindrome(int n)
{
int p;
p=opposite(n);
if(p==n)
return 1;
else
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: