poj2140(奇因数的个数)

#include<stdio.h>
int main()
{
int n,s=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
if(n%i==0&&i%2==1)
s++;
printf("%d",s);
return 0;
}
/*假设a,a+1,a+2...a+k ,为一组符合的答案

(k+1)a+0.5*k*(k+1)=n成立
划成
(a + 0.5*k)(k+1)=n
观察等式发现必须满足
1. 0.5*k为整数. 所以k是偶数
2. (k+1) 为n的因数,并且 (k+1) 为奇数
所以综上
n有多少个奇因数,就是本题的答案*/

时间: 2024-08-24 19:20:28

poj2140(奇因数的个数)的相关文章

UVa 294 (因数的个数) Divisors

题意: 求区间[L, U]的正因数的个数. 分析: 有这样一条公式,将n分解为,则n的正因数的个数为 事先打好素数表,按照上面的公式统计出最大值即可. 1 #include <cstdio> 2 #include <cmath> 3 4 const int maxn = 31700; 5 bool vis[maxn + 10]; 6 int prime[3450], cnt = 0; 7 8 void Init() 9 { 10 int m = sqrt(maxn + 0.5);

因数的个数 线段树维护

Let D(x) be the number of positive divisors of a positive integer x. For example, D(2)?=?2 (2 is divisible by 1 and 2), D(6)?=?4 (6 is divisible by 1, 2, 3 and 6). You are given an array a of n integers. You have to process two types of queries: REPL

LIGHT OJ 1278 Sum of Consecutive Integers(奇因子的个数)

题目链接:传送门 题意: 将给定的n分成 连续的数的和,至少有两个数,看能有多少种方案. 分析: a + (a + 1) + (a + 2) + ... +(a + k - 1) = n; ===> (2*a + k - 1) * k = 2*n; ===> (2*a - 1)*k = 2*n - k*k; ===> 2*a - 1 = 2*n/k - k; 等式的左边为奇数,那么右边也必须为奇数,则k必须为n的奇约数 因此将n素因子分解就可以了 代码如下: #include <i

LightOj 1278 - Sum of Consecutive Integers(求奇因子的个数)

题目链接:http://lightoj.com/volume_showproblem.php?problem=1278 题意:给你一个数n(n<=10^14),然后问n能用几个连续的数表示; 例如: 15 = 7+8 = 4+5+6 = 1+2+3+4+5,所以15对应的答案是3,有三种; 我们现在相当于已知等差数列的和sum = n, 另首项为a1,共有m项,那么am = a1+m-1: sum = m*(a1+a1+m-1)/2  -----> a1 = sum/m - (m-1)/2 a

Light OJ 1278 Sum of Consecutive Integers N拆分成连续整数和

题目来源:Light OJ 1278 Sum of Consecutive Integers 题意:N拆分成连续整数和的方案数 思路:奇因数的个数 #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; //筛素数 const int maxn = 10000010; bool vis[maxn]; int prime[10

华为机试—亮着电灯的盏数(求完全平方数的个数)

题目:亮着电灯的盏数 一条长廊里依次装有n(1≤n≤65535)盏电灯,从头到尾编号1.2.3.-n-1.n.每盏电灯由一个拉线开关控制.开始,电灯全部关着. 有n个学生从长廊穿过.第一个学生把号码凡是1的倍数的电灯的开关拉一下:接着第二个学生把号码凡是2的倍数的电灯的开关拉一下:接着第三个学生把号码凡是3的倍数的电灯的开关拉一下:如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下.n个学生按此规定走完后,长廊里电灯有几盏亮着. 注:电灯数和学生数一致.不能写笨拙的双重循环(优化过

华为机试—亮着电灯的盏数(1—N完全平方数的个数)

题目:亮着电灯的盏数 一条长廊里依次装有n(1≤n≤65535)盏电灯,从头到尾编号1.2.3.-n-1.n.每盏电灯由一个拉线开关控制.开始,电灯全部关着. 有n个学生从长廊穿过.第一个学生把号码凡是1的倍数的电灯的开关拉一下:接着第二个学生把号码凡是2的倍数的电灯的开关拉一下:接着第三个学生把号码凡是3的倍数的电灯的开关拉一下:如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下.n个学生按此规定走完后,长廊里电灯有几盏亮着. 注:电灯数和学生数一致.不能写笨拙的双重循环(优化过

递归or动态规划 百炼 2749 分解因数 详细题解

1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <math.h> 4 #include <algorithm> 5 #include <stdlib.h> 6 #include <vector> 7 #include <map> 8 #include <queue> 9 #include <string> 10 #include

【资料】印度数学家拉马努金

印度数学家拉马努金(这篇文章出自<数学家思想文库 一个数学家的辩白>,我做了一些校对和修正.)本文系哈代于1936年8月31日在哈佛文学和科学三百年纪念大会上发表的演讲.详见本文末的注释. 在这些演讲中我赋予自己一项真正困难的使命,如果我打算一开始就提出种种失败的理由,那我就会说这个使命几乎是不可能完成的.我必须亲自,并尽力帮助你们,对近代数学史上这位最浪漫的人物做出某种理智的评价,而我从未真正做出过这种评价:这个人的一生充满了矛盾和争议,他违反几乎一切我们常用来评判他人的原则,所有人对他的评