zoj 3286 Very Simple Counting---统计[1,N]相同因子个数
Very Simple Counting
Time Limit: 1 Second Memory Limit: 32768 KB
Let f(n) be the number of factors of integer n.
Your task is to count the number of i(1 <= i < n) that makes f(i) = f(n).
Input
One n per line (1 < n <= 1000000).
There are 10000 lines at most.
Output
For each n, output counting result in one line.
Sample Input
4
5
Sample Output
0
2
Hint
f(1) = 1, f(2) = f(3) = f(5) = 2, f(4) = 3.
Author: WU, Jun
Source: ZOJ Monthly, December 2009
理论依据:
zoj的题目,对时间和空间的要求都很高。
这一题,首先做的时候,超时。
不看时间,不看数据,直接枚举,不超时是不可能。
根据的公式和上一题福州大学oj那一题是一样的。
贴一下超时代码吧,留个纪念。
//超时代码 #include<stdio.h>
#include<stdlib.h> int f[];
int Num_Euler(int n)
{
int num=,k,i;
for(i=;i*i<=n;i++)
if(n%i==)
{
k=;
while(n%i==)
{
k++;
n=n/i;
}
num=num*k;
}
if(n!=)
num=num*;
return num;
} void make_ini()
{
int i;
for(i=;i<=;i++)
f[i]=Num_Euler(i);
}
int main()
{
int n,i,num;
make_ini();
while(scanf("%d",&n)>)
{
num=;
for(i=;i<n;i++)
if(f[i]==f[n])
num++;
printf("%d\n",num);
}
return ;
}
后来想用筛选法来筛一次,然后求值。第一次写的时候,也错了。
void make_NumEuler()
{
int i,j,k;
for(i=;i<=;i++)
opl[i]=;
for(i=;i<=len;i++)
for(j=prime[i],k=;j<=;j=j+prime[i],k++)
opl[j]=opl[j]*k;
}
思路是有的,就是没有写出来,(⊙o⊙)…
最后的代码:
#include<iostream>
#include<map>
#include<cstdio>
#include<cstdlib>
#include<cstring> using namespace std; bool s[];
int num[];
int ans[];//个数
int f[];
map<int,int>Q; void make_ini()
{
int i,j,k;
for(i=;i<=;i++)
{
num[i]=i;
ans[i]=;
f[i]=;
}
for(i=;i<=;i++)
if(s[i]==false)//是素数
{
for(j=i;j<=;j=j+i)//枚举每个素数的倍数
{
// if(j%i==0) //这个肯定成立,不需要
{
k=;
while(num[j]%i==)
{
num[j]=num[j]/i;
k++;
}
ans[j]=ans[j]*k;
}
s[j]=true;
}
}
for(i=;i<=;i++)
{
k=ans[i];
if(Q.find(k)==Q.end())
{
Q[k]=;
}
else Q[k]++;
f[i]=Q[k];
}
} int main()
{
int n;
make_ini();
// Q.clear();
while(scanf("%d",&n)>)
{
printf("%d\n",f[n]-);
}
return ;
}
zoj 3286 Very Simple Counting---统计[1,N]相同因子个数的更多相关文章
- Codeforces 11D A Simple Task 统计简单无向图中环的个数(非原创)
太难了,学不会.看了两天都会背了,但是感觉题目稍微变下就不会了.dp还是摸不到路子. 附ac代码: 1 #include<iostream> 2 #include<cstdio> ...
- 17997 Simple Counting 数学
17997 Simple Counting 时间限制:2000MS 内存限制:65535K提交次数:0 通过次数:0 题型: 编程题 语言: 不限定 Description Ly is craz ...
- Javascript 统计复选框选中个数
var checked = document.getElementsByName("checked_c[]"); var checked_counts = 0; for(var i ...
- Linux 统计文件夹下文件个数
查看统计当前目录下文件的个数,包括子目录里的. ls -lR| grep "^-" | wc -l Linux下查看某个目录下的文件.或文件夹个数用到3个命令:ls列目录.用gre ...
- 学c语言做练习之统计文件中字符的个数
统计文件中字符的个数(采用命令行参数) #include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[] ...
- 题目--统计一行文本的单词个数(PTA预习题)
PTA预习题——统计一行文本的单词个数 7-1 统计一行文本的单词个数 (15 分) 本题目要求编写程序统计一行字符中单词的个数.所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以 ...
- Linux上统计文件夹下文件个数以及目录个数
对于linux终端用户而言,统计文件夹下文件的多少是经常要做的操作,于我而言,我会经常在谷歌搜索一个命令,“如何在linux统计文件夹的个数”,然后点击自己想要的答案,但是有时候不知道统计文件夹命令运 ...
- 统计无向图中三角形的个数,复杂度m*sqrt(m).
统计无向图中三角形的个数,复杂度m*sqrt(m). #include<stdio.h> #include<vector> #include<set> #inclu ...
- 给出一个string字符串,统计里面出现的字符个数
给出一个string字符串,统计里面出现的字符个数 解决方案: 使用algorithm里面的count函数,使用方法是count(begin,end,'c'),其中begin指的是起始地址,end指的 ...
随机推荐
- CEPH 创建 RPM 安装包
1.安装依赖环境 yum install gcc make python-devel openssl-devel graphviz autoconf automake rpm-build redhat ...
- elasticsearch索引路径规则
Path to data on disk In prior versions of Elasticsearch, the path.data directory included a folder f ...
- 前端html页面学习---html部分
作为一个后台开发人员:本篇博客主要是关注前后台交互时需要掌握的html技术,不涉及css这一块的内容:主要是自学过程中的备忘 1:html常用标签标签的学习:不列出结束标签 <p>:段落: ...
- [Auto Testing] 工具准备:Selenium 与 ChromeDriver
<留存> Selenium http://selenium-release.storage.googleapis.com/index.html https://www.seleniumhq ...
- JDBC连接数据库7个步骤
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.JDBC所需的四个参数(user,password,url,driverClass) (1)user用户名 ( ...
- mysql中授权其它电脑链接指令。
grant all privileges on yourDatabaseName to 'user'@'databaseIPAddress' identified by 'password' with ...
- 【xsy1116】数学题 奥数题
真实奥数题 题目大意:给你正整数k$,r$.问你存在多少对$(x,y)$,满足$x<y$且$x^2+y^2=kz^2$,并将所有符合条件的数对输出. 数据范围:$r≤1e9$,$k={1,2,3 ...
- WebDriverAPI(5)
将当前浏览器截屏 测试网址 http://www.baidu.com Java语言版本实例 @Test public void captureScreenInCurrentWindows() { dr ...
- 自己搞了20万张图片100个分类,tensorflow训练23万次后。。。。。。
自己搞了20万张图片100个分类,tensorflow训练23万次后...... 我自己把训练用的一张图片,弄乱之后做了一个预测 100个汉字,20多万张图片,tensorflow CNN训练23万次 ...
- Java之Socket网络编程实践
转自:http://my.oschina.net/leejun2005/blog/104955#comments 一.TCP/IP协议 既然是网络编程,涉及几个系统之间的交互,那么首先要考虑的是如何准 ...