首页 > 编程语言 >c++打卡第六天

c++打卡第六天

时间:2023-04-16 13:55:50浏览次数:36  
标签:大数 int 质数 c++ 第六天 最大公约数 打卡 include 小数

一、问题描述

定义一个函数判断一个数是否为质数。

二、设计思路

①输入一个数,同时进入函数判断。

②进入函数可以通过for循环判断n是否为质数

③当这个数为1 时,不是质数,而当这个数是2 3时,是质数。

④可以通过循环质因数,其范围到n的开平方。

三、流程图

四、代码实现

 

#include<iostream>
#include<cmath>
using namespace std;
int is_prime(int x)
{
   if(x==1)
   {
       return 0;
   }
    else
    {
    for(int i=2;i<=sqrt(x);i++)
    {
        if(x%i==0)
        {
            return 0;
        }    
    }
    }
    return 1;
}
int main()
{
    int n;
    cin>>n;
    int len=is_prime(n);
    if(len==1)
    {
        cout<<n<<"是质数"<<endl; 
    }
    else
    {
        cout<<n<<"不是质数"<<endl;
    }
    return 0;
}

五、运行结果

 Ⅱ

一、问题描述

编写函数求两个数的最大公约数和最小公倍数

二、设计思路

①、输入两个数a,b,同时对这两个数排序,将大数拍到前面。

②、调用求最大公约数的函数,如果小数为0的话那么最大公约数为大数。

③、否则使用辗转相除法,大数除余小数,此时将小数赋值为大数a,余数赋值为b,继续调用函数。最终直到小数b为0,返回a。

④、a与b的乘积等于最大公约数乘以最小公倍数。

三、流程图

 四、代码实现

#include<iostream>
using namespace std;
int gys(int x,int y)
{
    if(y==0)
    {
        return x;
    }
    return gys(y,x%y);
}
int main()
{
    int a,b;
    cin>>a;
    cin>>b;
    int t;
    if(a<b)
    {
        t=a;
        a=b;
        b=t;
    }
    int g=gys(a,b);
    int l=(a*b)/g;
    cout<<"最大公约数为"<<g<<endl;
    cout<<"最小公倍数为"<<l<<endl; 
    return 0;
}

五、代码实现

 

标签:大数,int,质数,c++,第六天,最大公约数,打卡,include,小数
From: https://www.cnblogs.com/zzqq1314/p/17323187.html

相关文章

  • C++中的继承
    #include<iostream>classA{public:std::stringhead;voidhello(std::stringstr){std::cout<<str<<head<<std::endl;}};intmain(){Aa;std::stringstr="hello";a.head......
  • C++访问控制public private
    #include<iostream>classA{public:std::stringhead;private:std::stringbody;};intmain(){Aa;a.head="888";a.body="999";return0;}报错结果main.cpp:Infunction‘intmain()’:main.c......
  • C++11新特性
    移动语义概念理解可以取地址的是左值,不能取地址的就是右值。右值短暂的存在于栈上。右值包括:临时对象、匿名对象、字面值常量const左值引用可以绑定到左值与右值上面。正因如此,也就无法区分传进来的参数是左值还是右值。右值引用只能绑定到右值,不能绑定到左值。所以可以区分......
  • 每日打卡 8
    #include<iostream>usingnamespacestd;#include<algorithm>intget(inta,intb){intl=1,r=1e9+1;while(l<r){intmid=l+r>>1;if(a/mid<=b)r=mid;elsel=mid+1;......
  • 建民打卡日记4.17
    一、问题描述车牌号四位中前两位相等,后两位也相等但与前两位不同,且车号恰好是一个整数的平方,求该车牌号二、设计思路1.建立双重循环穷举符合条件的车牌号2.建立内循环穷举某整数的平方3.当两者相等时,输出结果三、程序流程图四、代码实现#include<iostream>usingnames......
  • 建民打卡日记4.16
    一、问题描述某人从1990年一月一日开始“三天打鱼两天晒网”,问某天以后是打鱼还是晒网?二、设计思路1.输入日期2.求1990年一月一日到该日期天数3.对天数求余,根据余数输出“打鱼”或“晒网”三、程序流程图四、代码实现#include<iostream>usingnamespacestd;intrunY......
  • 天天打卡一小时第四天
    1.问题描述实验1-4计算工资某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工,5年以下的为新职工。新职工的正常工资为30元......
  • C++冒泡排序简单讲解
    什么是冒泡排序冒泡排序(BubbleSort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢......
  • 金额查错C++
    一、题目题目描述某财务部门结账时发现总金额不对头。很可能是从明细上漏掉了某1笔或几笔。如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或几笔吗?如果有多种可能,则输出所有可能的情况。输入描述用户输入的第一行是:有错的总金额。接下来是一个整数 n,表示下面将要输......
  • 每日打卡
    #include<iostream>//剪刀石头布usingnamespacestd;intmain(){intN;cin>>N;char**a=newchar*[N];for(inti=0;i<N;i++){a[i]=newchar[2];}for(intk=0;k<N;k++){for(intj=0;j......