博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CCNU第五周赛前练习:不可摸数
阅读量:4299 次
发布时间:2019-05-27

本文共 1123 字,大约阅读时间需要 3 分钟。

J -
Number theory-1
Time Limit:1000MS    Memory Limit:32768KB    64bit IO Format:%I64d & %I64u

Description

 

s(n)是正整数n的真因子之和,即小于n且整除n的因子和.例如s(12)=1+2+3+4+6=16.如果任何
数m,s(m)都不等于n,则称n为不可摸数.
 

Input

包含多组数据,首先输入T,表示有T组数据.每组数据1行给出n(2<=n<=1000)是整数。
 

Output

如果n是不可摸数,输出yes,否则输出no
 

Sample Input

3258
 

Sample Output

yesyesno
 题目我一开始脑残理解错了以为如果S(n)!=n就是不可摸数结果发现按照我的思路S(8)=7所以8也是不可摸数但是跟样例不符,后面看才发现题中的意思是如果所有的2-1000的真因子和S(m)都无法找到一个与n相同的数n才是不可摸数。例如当n=8时,S(10)=1+2+5=8满足题意故输出NO,所以这道题因为数据很小,所以我们应该暴力求出1000以内的所有数对应真因子和,然后再让所给的n一一来匹配从而来判断,暴力一一求解没个数的真因子和呢,自己手动在纸上写几个然后可以发现规律代码中的第一段也会展示出来,而后面用个标记变量如果出现了满足题意的S(i)就立即跳出输出NO就OK了下面附上代码。
#include
#include
#include
#include
using namespace std;int main(){ int i,j,n,t,flag=0; int a[5000]={0}; a[0]=1; a[1]=1; for(i=2;i<5000;i++) { a[i]=0; for(j=1;j<=i/2;j++) if(i%j==0) a[i]+=j; } cin>>t; while(t--) { cin>>n; for(i=0;i<=1000;i++) { if(n==a[i]) { flag=1; break; } } if(flag==1) cout<<"no"<

转载地址:http://dupws.baihongyu.com/

你可能感兴趣的文章
Python+Selenium练习篇之29-处理Alert弹窗
查看>>
Python+Selenium练习篇之30-获取当前页面全部图片信息
查看>>
Python+Selenium练习篇之31-获取页面元素的href属性
查看>>
Python+Selenium练习篇之32-如何截图并保存
查看>>
Python+Selenium中级篇之0-设计自动化测试框架的前提技能介绍
查看>>
Python+Selenium中级篇之1-Python IDE工具-PyCharm的安装和简单使用
查看>>
Python+Selenium中级篇之2-Python中类/函数/模块的简单介绍和方法调用
查看>>
Python+Selenium中级篇之3-二次封装Selenium中几个方法
查看>>
Python+Selenium中级篇之4-封装一个自己的类-浏览器引擎类
查看>>
Python+Selenium中级篇之5-Python读取配置文件内容
查看>>
Python+Selenium中级篇之6-Python获取系统时间和格式化时间显示
查看>>
Python+Selenium中级篇之7-Python中字符串切割操作
查看>>
Python+Selenium中级篇之8-Python自定义封装一个简单的Log类
查看>>
Python+Selenium中级篇之9-把截图类方法封装到前面的BasePage.py
查看>>
Python+Selenium中级篇之10-Python中的继承的使用
查看>>
Python+Selenium框架设计篇之1-什么是自动化测试框架
查看>>
Python+Selenium框架设计篇之2-简单介绍unittest单元测试框架
查看>>
Python+Selenium框架设计篇之3-什么是POM
查看>>
Python+Selenium框架设计篇之4-框架内封装日志类和浏览器引擎类
查看>>
Python+Selenium框架设计篇之5-框架内封装基类和实现POM
查看>>