C++函数练习

这篇博客包含三个C++程序示例,分别演示了如何求两个整数的最大公约数和最小公倍数,获取一个数从右边开始的第k位数字,以及将偶数表示为两个素数之和的方法。通过这些示例,展示了C++中函数的使用和素数判断的实现。

#include <stdio.h>

//函数——求两个整数最大公约数 
int Myue(int a,int b)
{
    int m=1;
    for(int i=1;i<=a;i++)
    {
        //求最大公约数 
        if(a%i==0)
        {
            if(b%i==0)
            {
                m=i;
            }
        }
    }
    return m;
}

//函数——求两个整数最小公倍数 
int Mbei(int x,int y)
{
    int i;
    //求最小公倍数 
    for(i=x;i>0;i++)
    {
        if(i%x==0)
        {
            if(i%y==0)
            {
            break;
            }
        }
    }
    return i; 
}

int main()
{
    int a,b,c,d;
    //输入 
    scanf("%d%d",&a,&b);
    //赋值 
    c=Myue(a,b);
    d=Mbei(a,b);
    //打印 
    printf("%d %d\n",c,d);
    return 0;
}

———————————————————————————————————————————

输入一个数num,输出这个数从右边开始第k位数字的值

#include <stdio.h>

//创建一个函数 
int digit(int num,int k)
{
    //取出整数num从右边开始第k位数字的值 
    for(int i=1;i<k;i++)
    {
        num/=10;    
    }
    num%=10;
    return num;        

int main()
{
    int a,b,c=0;
    //输入 
    scanf("%d%d",&a,&b);
    c=digit(a,b);
    //输出 
    printf("%d\n",c);
    return 0;
}

———————————————————————————————————————————

将任何一个不小于6的偶数表示为两个素数之和,如6=3+3,50=3+47……输出其表达式

要求编写函数判断一个数是否为素数

#include <stdio.h>

//判断一个数是否为素数,是则输出1,否则输出0 
int Snum(int a)
{
    int m=1; //素数 
    for(int j=2;j<a;j++)
    {
        if(a%j==0)
        {
            m=0;//非素数 
            break;
        }
    }

    return m;
}

int main()
{
    int a,n=0;
    int x,y=0;
     //输入  
    printf("请输入一个大于等于6的偶数将其表示为两个素数之和\n");
    while(a>=0)
    {
        int i=0;
        scanf("%d",&a);
        if(a>=6)
        {
            if(a%2==0)
            {
                break;
            }
        }
        printf("请按照要求重新输入\n");
    }
    
    //a=x+y——判断x、y是否为素数 
    for(x=2;x<a;x++)
    {
        
        n=Snum(x);
        if(n==0)//非素数  
        {
            continue;
        }
        y=a-x;
        n=Snum(y);
        if(n==0)//非素数 
        {
            continue;
        }
        break;
    }
    //输出 
    printf("%d=%d+%d",a,x,y);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值