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

C++第七次作业

2016-06-05 21:11 477 查看
项目3:特殊三位数

#include<iostream.h>
int fact(int);
int main()
{
int a,b,c,sum;
int n=100;
while(n<1000)
{
c=n%10;
b=(n/10)%10;
a=n/100;
sum=fact(a)+fact(b)+fact(c);
if(sum==n)
cout<<n<<endl;
++n;
}
return 0;
}

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