1. 程式人生 > >C++第7次作業

C++第7次作業

專案1:素數和迴文

#include<iostream>
using namespace std;
int isPrimer(int n)//判斷素數
{
    int i,j=1;
    for(i=2;i<n;i++)
        if(n%i==0)
        {
            j=0;
            break;
        }
        return j;
}
int isPalindrome(int num) //判斷迴文
{
    int temp=0;
    for(int n=num;n;n/=10)
        temp=temp*10+n%10;
    return temp==num;
}
int main()
{
    const int M=100;
    int i,j=0,m=0,n=0,k=0,p,r;
    int a[M],b[M],c[M],d[M];
    for(i=2;i<=300;i++)
    {
        if(isPrimer(i))
        {
            a[j]=i;
            j++;
            r=i;
            p=0;
            while(r!=0)
            {
                p=p*10+r%10;
                r=r/10;
            }
            if(isPrimer(p))
            {
                d[k]=i;
                k++;
            }
        }
        if(isPalindrome(i))
        {
            b[m]=i;
            m++;
        }
        if(isPrimer(i) && isPalindrome(i))
        {
            c[n]=i;
            n++;
        }
    }
    cout<<"300以內的所有素數有:"<<endl;
    for(i=0;i<j;i++)
        cout<<a[i]<<"\t ";
    cout<<endl;
    cout<<"300以內的所有迴文數有:"<<endl;
    for(i=0;i<m;i++)
        cout<<b[i]<<"\t";
    cout<<endl;
    cout<<"300以內的所有迴文素數有:"<<endl;
    for(i=0;i<n;i++)
        cout<<c[i]<<"\t";
    cout<<endl;
    cout<<"300以內的所有可逆素數有:"<<endl;
    for(i=0;i<k;i++)
        cout<<d[i]<<"\t";
    cout<<endl;
    return 0;
}


專案2:最大公約和和最小公倍數

#include <iostream>
using namespace std;
int F1(int m,int n)
{
    int i;
    while(n!=0)
    {
        i=m%n;
        m=n;
        n=i;
    }
    return m;
}
int F2(int m,int n)
{
    int j;
    j=(m*n)/(F1(m,n));
    return j;
}
int main()
{
    int a,b;
    cin>>a>>b;
    cout<<"請輸入兩個數:";
    cout<<"最大公約數是:"<<F1(a,b)<<endl;
    cout<<"最小公倍數是:"<<F2(a,b)<<endl;
    return 0;
}