题意:定义s[m]为m内的因子的和,给定一个n,判断是否有s[m]==n,若没有,则是不可摸数. 思路:首先要打表求出s[m]的值,标记这些出现过的值. 打表求因子和: for(int i=1;i<=500000;i++) for(int j=i*2;j<1000000;j+=i) sum[j]+=i;//找到j的因子和,j的因子是i AC代码: #include<stdio.h> #include<string.h> int sum[1000100],a[1010];…
/* 中文题意: 中文翻译: 题目大意:见红字(例如以下) 解题思路:打表,将每一个数的合数之和存在一个数组之中 难点具体解释:用两个for循环写的,第二个for循环主要是解释两个数相乘不超过这个最大数的上限,以下的a[i*j]主要是用来记录合数之和,同一时候也保证了数组上限在最大值里面 关键点:求在1000以内合数之和,打表 解题人:lingnichong 解题时间:2014/7/31    17:52 解题感受:一開始错了几次,原因是数组开小了,后台数组非常大,他又说对随意的m,所以数组要开…
题目链接 Problem 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` 3 2 5 8`  Sample Output` yes yes no` 题目分析: 首先要弄明白…
不可摸数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7966    Accepted Submission(s): 2024 Problem Description s(n)是正整数n的真因子之和,即小于n且整除n的因子和.例如s(12)=1+2+3+4+6=16.如果任何数m,s(m)都不等于n,则称n为不可摸数.   Input…
不可摸数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8590    Accepted Submission(s): 2242 Problem Description s(n)是正整数n的真因子之和.即小于n且整除n的因子和.比如s(12)=1+2+3+4+6=16.假设不论什么 数m,s(m)都不等于n,则称n为不可摸数.   I…
不可摸数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15591    Accepted Submission(s): 4077 Problem Description s(n)是正整数n的真因子之和,即小于n且整除n的因子和.例如s(12)=1+2+3+4+6=16.如果任何数m,s(m)都不等于n,则称n为不可摸数.   Inpu…
/* hdu 1999 不可摸数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8274    Accepted Submission(s): 2122 Problem Description s(n)是正整数n的真因子之和.即小于n且整除n的因子和.比如s(12)=1+2+3+4+6=16.假设不论什么 数m.s(m)都不等于n,则…
/** 大意: 求[a,b] 之间 phi(a) + phi(a+1)...+ phi(b): 思路: 快速求欧拉函数 **/ #include <iostream> #include <cstring> using namespace std; #define Max 3000000 ]; ]; ]; void init() { ; memset(flag,,sizeof(flag)); phi[]=; ;i<=Max;i++)//欧拉筛选 { if(flag[i]) {…
题意:求A的B次方的后三位数字 思路1:常规求幂,直接取余求解 代码: #include<iostream> #include<cstdio> using namespace std; int main(){ int a,b; int ans; while(~scanf("%d%d",&a,&b)){ &&b==) break; a=a%;//底数取余 ans=; while(b--){ ans=(ans*a)%;//结果取余 }…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4767 题意:求集合{1, 2, 3, ..., n}有多少种划分情况bell[n],最后结果bell[n] mod 95041567. 分析:首先了解三个概念:贝尔数   第二类斯特灵数   中国剩余定理 贝尔数是指基数为n的集合的划分方法的数目. 贝尔数适合递推公式: 每个贝尔数都是"第二类Stirling数"的和 贝尔数满足两个公式:(p为质数)             1) B[n+…