hdu 1299 数论 分解素因子


题意:求1、1/x+1/y=1/z  给定z 求x,y的个数
zsd:
1: 要知道这个素数的因子的范围 范围为2——sqrt(n);
2:

带入方程得:x = n * n / k + n ;

现在就变成了求x的值。又因为n一定大于k,所以转换成求n *
n的分解数;

因为n = p1 ^ e1 * p2 ^ e2 *..........*pn ^
en

sum ( n)= ( 1 + e1 ) * ( 1 +e2 ) * .........*
( 1 +en );

sum (n * n) = ( 1 + e1 ) * (1 + e2 ) *......*
( 1 + en ) ;



#include<iostream>
#include<cstring>
using namespace std;
# define N 40003
int a[N];
int main()
{

int i,j;
memset(a,0,sizeof(a));
for(i=2;i<N;i++)
if(a[i]==0)
{
for(j=i+i;j<N;j+=i)
a[j]=1;
}
int t;
int n;
cin>>t;
int T=1;
for(T=1;T<=t;T++)
{

cin>>n;
int sum=1;
for(i=2;i<=N;i++)
{
if(a[i]) continue;
if(n%i!=0) continue;
if(n==1) break;
int c=0;
while(n%i==0)
{
n=n/i;
c++;
}
if(c>0)
sum*=(2*c+1);
}
if(n!=1) sum*=3;
cout<<"Scenario #"<<T<<":"<<endl;
cout<<sum/2+1<<endl<<endl;

}
return 0;
}

hdu 1299 数论 分解素因子,码迷,mamicode.com

时间: 2024-10-22 05:27:03

hdu 1299 数论 分解素因子的相关文章

hdu 1299 Diophantus of Alexandria (数论)

Diophantus of Alexandria Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2269    Accepted Submission(s): 851 Problem Description Diophantus of Alexandria was an egypt mathematician living in Ale

FZU 1075 分解素因子【数论/唯一分解定理/分解素因子裸模板】

[唯一分解定理]:https://www.cnblogs.com/mjtcn/p/6743624.html 假设x是一个正整数,它的值不超过65535(即1<x<=65535),请编写一个程序,将x分解为若干个素数的乘积. Input 输入的第一行含一个正整数k (1<=k<=10),表示测试例的个数,后面紧接着k行,每行对应一个测试例,包含一个正整数x. Output 每个测试例对应一行输出,输出x的素数乘积表示式,式中的素数从小到大排列,两个素数之间用“*”表示乘法. Samp

hdu 4542 数论 + 约数个数相关 腾讯编程马拉松复赛

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4542 小明系列故事--未知剩余系 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 889    Accepted Submission(s): 207 Problem Description "今有物不知其数,三三数之有二,五五数之有三,七七数之有

hdu 1299 Diophantus of Alexandria(数学题)

题目链接:hdu 1299 Diophantus of Alexandria 题意: 给你一个n,让你找1/x+1/y=1/n的方案数. 题解: 对于这种数学题,一般都变变形,找找规律,通过打表我们可以发现这个答案只与这个数的因子有关. n=a1^p1*a2^p2*...*an^pn ans=((1+2*p1)*(1+2*p2)*...*(1+2*pn)+1)/2 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;

hdu 1124 数论

题意:求n!中末尾连续0的个数  其实就是2*5的个数 30! 中有5 10 15 20 25 30  是5的倍数有6个   6=30/5; 6/5=1; 这个1 为25 5  10 15 20  25  30 35 40 45 50 55 60  65 70 75 80  85 90 95 100      100/5=20; 25                     50                    75                     100       20/5=4

hdu 3641 数论 二分求符合条件的最小值数学杂题

http://acm.hdu.edu.cn/showproblem.php?pid=3641 学到: 1.二分求符合条件的最小值 /*==================================================== 二分查找符合条件的最小值 ======================================================*/ ll solve() { __int64 low = 0, high = INF, mid ; while(low <=

LightOJ 1340 - Story of Tomisu Ghost 阶乘分解素因子

http://www.lightoj.com/volume_showproblem.php?problem=1340 题意:问n!在b进制下至少有t个后缀零,求最大的b. 思路:很容易想到一个数通过分解素因子可以得到最大的指数.那么问题关键在于求得n!的素因子的指数,找到指数大于t的所有素因子,再将那些指数除去t,剩下的数就是最大的b了.分解阶乘时,对n不断除素数p,直到n为0时,此时商的和即该素因子的指数. /** @Date : 2016-11-30-19.35 * @Author : Lw

【小方法--最简】C - 分解素因子

C - 分解素因子Crawling in process... Crawling failed Time Limit:2000MS     Memory Limit:10240KB     64bit IO Format:%lld & %llu Submit Status    Description 假设x是一个正整数,它的值不超过65535(即1< x < =65535),请编写一个程序, 将x分解为若干个素数的乘积.    Input 输入的第一行含一个正整数k (1<=k

hdu 4961 数论 o(nlogn)

Boring Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 60    Accepted Submission(s): 30 Problem Description Number theory is interesting, while this problem is boring.   Here is the probl