当前位置: 首页 > ai >正文

码蹄集——分解、数组最大公约数、孪生质数、卡罗尔数、阶乘数

 

MT1158 分解

输入正整数N和M,判断N是否可以分解成M个不同的正整数的和,输出YES或者NO。

格式

输入格式:输入正整数N和M,空格分隔

输出格式:输出YES或者NO

样例 1

输入:5 2

输出:YES

思路:从1~m遍历m个数,并相加,判断其与n的大小关系,只要小于n都满足条件

注意!!是不同的数

#include<bits/stdc++.h>using namespace std;int main()
{int n,m;cin>>n>>m;int sum=0;//m个不同的正整数能相加组成的最小正整数 for(int i=1;i<=m;i++)sum+=i;//只要比这个最小和要大都可以加一个数来实现要求//(加在任意一个由上面组成的序列中的数) if(n>=sum)cout<<"YES";elsecout<<"NO";return 0;} 

 MT1162 数组最大公约数

给定一个由N个正整数组成的数组,求所有数组元素的最大公约数。

格式

输入格式:第一行输入数组长度N,第二行输入数组元素,整型,空格分隔。

输出格式:输出整型

样例 1

输入:

3  
2 4 6

输出:2

思路:使用辗转相除法按两个两个求最大公约数 

#include<bits/stdc++.h>using namespace std;int check(int a,int b)
{if(a<b){int tmp=a;a=b;b=tmp;}while(a&&b){int r=a%b;a=b;b=r;}return a;
}//不用判断a与b的大小的写法// int c;// while(a%b)// {//     c=a%b;//     a=b;b=c;// }int main()
{int n;cin>>n;int tmp1,tmp2;cin>>tmp1>>tmp2;int tmp=check(tmp1,tmp2);for(int i=1;i<n;i++){int tmp3;cin>>tmp3;tmp=check(tmp,tmp3);}cout<<tmp;return 0;} 

 MT1163 孪生质数

在质数中,若两个质数之差为2,我们称之为孪生质数,例如(3、5)(5、7),输入2个正整数,判断他是不是孪生质数,输出YES或者NO。

格式

输入格式:输入整型

输出格式:输出YES或者NO

样例 1

输入:2 6

输出:NO

注意!!需要对1进行特判,1不是质数,但是check函数中1返回true 

#include<bits/stdc++.h>using namespace std;bool check(int a)
{for(int i=2;i<a;i++)if(a%i==0)return false;return true;
}int main()
{int a,b;cin>>a>>b;//判断特殊情况,1不是质数,但是按照现在的1 3能输出yesif(a==1||b==1){cout<<"NO";return 0;}if(check(a)&&check(b)&&(abs(a-b)==2))cout<<"YES";elsecout<<"NO";return 0;} 

 MT1165 卡罗尔数

卡罗尔数是其值满足4n–2(n+1)–1的整数(n为正整数)。输入正整数N判断它是不是卡罗尔数,输出YES或者NO。

格式

输入格式:输入正整数N

输出格式:输出YES或者NO

样例 1

输入:1

输出:YES

思路:直接遍历,因为num是从-1开始,刚开始时num一定小于n,所有结束条件是num>n

#include<bits/stdc++.h> using namespace std;bool check(int n)
{return 2*n-3;
}
int main( )
{int n;cin>>n;int num;for(int i=1;;i++){num=2*i-3;if(num==n){cout<<"YES";return 0;	}	else if(num>n){cout<<"NO";return 0;}}return 0;
}

MT1167 自守数II

输入正整数N,检查该数是否为自守数输出YES或者NO。当且仅当一个数的平方以与该数相同的数字结尾时,该数称为自守数。

格式

输入格式:输入正整数N

输出格式:输出YES或者NO

样例 1

输入:76

输出:YES

自守数:一个数的平方的尾数等于该数自身的自然数

需要按位进行比较

#include<bits/stdc++.h> using namespace std;int main( )
{int n;cin>>n;int m=n*n;while(n&&m){if(m%10!=n%10){cout<<"NO";return 0;}m/=10;n/=10;}cout<<"YES";return 0;
}

 MT1168 阶乘数

输入正整数N,找出它是否是一个等于其他数的阶乘值的数,输出YES或者NO。

格式

输入格式:输入正整数N

输出格式:输出YES或者NO

样例 1

输入:5

输出:NO

思路:在循环中不断与该数阶乘进行对比 

#include<bits/stdc++.h> using namespace std;int main( )
{int n;cin>>n;int sum=1;for(int i=1;i<=n;i++){sum*=i;if(n==sum){cout<<"YES";return 0;}}cout<<"NO";return 0;
}

 

http://www.xdnf.cn/news/5894.html

相关文章:

  • PY32系列单片机离线烧录器,可配置选项字节和上机台批量烧录
  • The Deep Learning Compiler: A Comprehensive Survey (深度学习编译器:全面调查)
  • milvus+flask山寨《从零构建向量数据库》第7章case2
  • FPGA图像处理(六)------ 图像腐蚀and图像膨胀
  • 【图像处理基石】遥感图像分析入门
  • stm32f103rct6中使用串口1 DMA通信程序含异常处理
  • 数据验证库pydantic的用法
  • 力扣热题——统计平衡排列的数目
  • 进程间通信分类
  • 数组练习题
  • 采购流程规范化如何实现?日事清流程自动化助力需求、采购、财务高效协作
  • 动态查找滚动容器(通用方案)
  • 故障诊断模型评估——混淆矩阵,如何使样本量一致(上)
  • 深入浅出之STL源码分析8_三个指针
  • PostgreSQL 恢复信息函数
  • Android Exoplayer多路不同时长音视频混合播放
  • window 显示驱动开发-报告图形内存(一)
  • ElasticSeach快速上手笔记-入门篇
  • VScode 的插件本地更改后怎么生效
  • 嵌入式学习--江协51单片机day5
  • React百日学习计划——Deepseek版
  • 销量预测评估指标
  • 【工作记录】Kong Gateway 入门篇之部署及简单测试
  • mpegts.js 播放flv视频报错:PIPELINE_ERROR_DECODE: video decode error!
  • FlashInfer - 安装
  • 理解 Open vSwitch (OVS)
  • 一键转换上百文件 Word 批量转 PDF 软件批量工具
  • 大模型——Crawl4AI为 LLM 和 RAG 准备高质量网页数据
  • ‌Element UI 双击事件(@cell-dblclick 与 @row-dblclick)
  • 函数式方法的实现(JDK8+)