HDOJ-1999 不可摸数
不可摸数
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5334 Accepted Submission(s): 1405
数m,s(m)都不等于n,则称n为不可摸数.
1 /* 2 //代码一:-----超时 3 #include<stdio.h> 4 #include<math.h> 5 6 int fun(int num) 7 { 8 int i,k=0; 9 for(i=1;i<=(int)sqrt(num);++i) 10 if(num%i==0) 11 { 12 if(num/i!=i) 13 { 14 k+=i; 15 k+=num/i; 16 } 17 else 18 k+=i; 19 } 20 return k; 21 } 22 23 int main() 24 { 25 int T,i,n,flag; 26 scanf("%d",&T); 27 while(T--) 28 { 29 flag=0; 30 scanf("%d",&n); 31 for(i=1;i<=(n-1)*(n-1);++i) 32 { 33 if(fun(i)==n) 34 { 35 flag=1; 36 break; 37 } 38 } 39 if(flag) 40 printf("no\n"); 41 else 42 printf("yes\n"); 43 } 44 return 0; 45 } 46 47 48 49 */ 50 51 52 /* 53 代码二:---AC 54 标准的筛选法---求出每个数的因子和, 55 然后看因子和是否在1000以内,是的话就证明等于因子和的这个数是不可摸数。 56 */ 57 #include<stdio.h> 58 #define MAX 500001 //这题数据求到这里就可以了 59 60 int sum[MAX]; 61 int flag[1001]; 62 63 void init() //筛选法算出1000内存在的的因子和 64 { 65 int i,j; 66 for(i=1;i<=MAX/2;++i) //不知道为啥 这里开到刚超出1000了就不对 67 for(j=i+i;j<MAX;j+=i) 68 sum[j]+=i; 69 for(i=1;i<MAX;++i) 70 if(sum[i]<=1000) 71 flag[sum[i]]=1; 72 } 73 74 75 int main() 76 { 77 int T,n; 78 init(); 79 // printf("%d\n",sum[500000]); 80 scanf("%d",&T); 81 while(T--) 82 { 83 scanf("%d",&n); 84 if(flag[n]) 85 printf("no\n"); 86 else 87 printf("yes\n"); 88 } 89 return 0; 90 } 91 92 93 94 95 /* 96 97 对于这个题有两个引理和公认: 98 1. 若x为大于2的偶数,那么s(x)>x/2; 99 2. 若x是一个正奇数,而s(x)是偶数,那么x必然是一个平方数。 100 3. 只有一个不可摸数是奇数,那是5 101 有以上三个结论,便可以算出一定范围内的不可摸数。 102 103 代码三: 104 */ 105 #include <iostream> 106 using namespace std; 107 int arry[1005]; 108 109 void check() 110 { 111 int sum; 112 for(int i=2;i<=2000;i+=2) 113 { 114 sum=0; 115 for(int j=1;j<=i/2;++j) 116 { 117 if(i%j==0) 118 sum+=j; 119 } 120 if(sum<=1000) 121 arry[sum]=1; 122 } 123 for(int i=3;i<=1000;i+=2) 124 { 125 sum=0; 126 for(int j=1;j<=(i*i)/2;j+=2) 127 { 128 if((i*i)%j==0) 129 sum+=j; 130 } 131 if(sum<=1000) 132 arry[sum]=1; 133 } 134 135 } 136 int main() 137 { 138 check(); 139 int t; 140 scanf("%d",&t); 141 while(t--) 142 { 143 int n; 144 scanf("%d",&n); 145 if(n==5) 146 cout<<"yes"<<endl; 147 else 148 { 149 if(arry[n]||n%2==1) 150 cout<<"no"<<endl; 151 else 152 cout<<"yes"<<endl; 153 } 154 } 155 return 0; 156 }
转载于:https://www.cnblogs.com/dongsheng/archive/2012/08/18/2645594.html
HDOJ-1999 不可摸数相关推荐
- HDU 1999 不可摸数
不可摸数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 不可摸数http://acm.hdu.edu.cn/showproblem.php?pid=1999
不可摸数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- hdu1999 不可摸数 好题.
题意: s(n)是正整数n的真因子之和,即小于n且整除n的因子和.例如s(12)=1+2+3+4+6=16.如果任何数m,s(m)都不等于n,则称n为不可摸数. (2<=n<=1000) ...
- HDOJ 1282 回文数猜想
/******************************************* H ...
- HDOJ(HDU) 2502 月之数(进制)
Problem Description 当寒月还在读大一的时候,他在一本武林秘籍中(据后来考证,估计是计算机基础,狂汗-ing),发现了神奇的二进制数. 如果一个正整数m表示成二进制,它的位数为n(不 ...
- HDOJ 1282 回文数猜想(回文串类)
Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其 ...
- HDOJ 5184 Brackets 卡特兰数扩展
既求从点(0,0)仅仅能向上或者向右而且不穿越y=x到达点(a,b)有多少总走法... 有公式: C(a+b,min(a,b))-C(a+b,min(a,b)-1) /// 折纸法证明卡特兰数: h ...
- HDU1999不可摸数-暴力打表
看到这约数和第一反应是约数和函数,然后仔细一看不是正经的约数和函数,就去推去了,然后推的有点小复杂.(数论函数那部分做多了) 然后观察也没有用到什么数论部分的特殊知识啊,难不成真的要暴力? 大概分析了 ...
- 51单片机实例学习二 按键中断识别、定时器、利用定时器产生乐曲、数摸转换 ADC0804和DAC0832
六.按键中断识别 [实验任务] 采用中断技术,每按一下按键,计数器加1,并用LED显示出来. [硬件电路] 注意:我们只用4位数码管中的两位. 注意:a接P0.0;b接P0.1;c接P0.3-- 注意 ...
最新文章
- 重构-改善既有代码的设计:对象之间移动特性的八种方法(五)
- vs2010 失效后的解决办法
- 【2D动画】《想你》。。。。难以想象
- UE4如何贴混合贴图_UE4[蓝图]动态积雪材质的实现(一)
- C# 检查当前系统已安装的程序app/两种方法检测
- 【Level 08】U06 Good Feeling L1 End-of-season game
- System-Level Registers and Data Structures in IA-32e Mode and 4-Level Paging
- 普通程序员能实现财务自由吗?
- oracle的三个网络配置文件
- js中事件捕获和事件冒泡
- 面向对象及os模块、socket模块
- http keepalive原理
- CIH病毒的分析与清除
- 数字c语言代码大全,C语言代码大全
- Win系统 - WIN10 版本号说明
- mysql.sock 是什么_mysql.sock到底存了什么信息?
- 电动汽车结构原理基础知识
- Spring Cloud 入门 ---- Security 整合 Oauth2 认证授权【随笔】
- echarts环形图--彩虹图--蚊香图
- 20、个人信息 - 小程序端开发 - 微擎小程序模块应用开发
热门文章
- Hue中Sqoop导数报错Could not load db driver class: com.mysql.jdbc.Driver
- Android使用Http访问网络
- R︱高效数据操作——data.table包(实战心得、dplyr对比、key灵活用法、数据合并)
- 数学倒底有没有绝对的严格性和形式化?
- CentOS6.5 安装并配置vsftpd
- MongoDB学习:关闭mongod方式
- ASP.NET使用ConfigurationSection在Web.Config创建自定义配置节
- Toolbar的困惑
- 0. SQL Server监控清单
- 关于大规模 push 系统的解决方案