项目2:最小公倍数和最大公约数
#include<iostream>
using namespace std;
int leasemul;
void f1(int i,int j)
{
int t;
if(i<j)
f1(j,i);
else
{
while(j!=0)
{
t=i%j;
i=j;
j=t;
}
leasemul=i;
}
}
int f2(int i,int j)
{
int t;
t=(i*j)/leasemul;
return t;
}
int main()
{
int i,j;
cout<<"请输入两个整数:"<<endl;
cin>>i>>j;
f1(i,j);
cout<<i<<"与"<<j<<"最大公约数是:"<<leasemul<<endl;
cout<<i<<"与"<<j<<"最大公倍数是:"<<f2(i,j)<<endl;
return 0;
}
项目1:素数和回文
#include<iostream>
using namespace std;
int isPrimer(int n)//判断是否为素数
{
int a,b;
for(a=2;a<n;a++)
if(n%a==0)
{
b=0;
break;
}
else
b=1;
return b;
}
int isPalindrome(int n) //判断是否为回文数
{
int m=n,i=0,j;
while(m!=0)
{
i=i*10+m%10;
m=m/10;
}
if(i!=n)
j=0;
else
j=1;
return j;
}
int main()
{
int i,j=0,k=0,l=0,m=0,n,p;
int a[300],b[300],c[300],d[300];
for(i=2;i<300;i++)
{
if(isPrimer(i))//素数
{
a[j]=i;
j++;
n=0;
p=i;
while(p!=0)
{
n=n*10+p%10;
p=p/10;
}
if(isPrimer(n))//可逆素数
d[m++]=i;
}
if(isPalindrome(i))//回文数
b[k++]=i;
if(isPrimer(i)&&isPalindrome(i))//回文素数
c[l++]=i;
}
cout<<"300以内的所有素数有:";
for(i=0;i<j;i++)
cout<<a[i]<<" ";
cout<<endl<<"300以内的所有回文数有:";
for(i=0;i<k;i++)
cout<<b[i]<<" ";
cout<<endl<<"300以内的所有回文素数有:";
for(i=0;i<l;i++)
cout<<c[i]<<" ";
cout<<endl<<"300以内的所有可逆素数有:";
for(i=0;i<m;i++)
cout<<d[i]<<" ";
cout<<endl;
return 0;
}