小C的倍数问题

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 481    Accepted Submission(s): 278

Problem Description
根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数。反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3的倍数。

现在给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数的充分必要条件是每一位加起来的和是B的倍数。

 
Input
第一行一个正整数T表示数据组数(1<=T<=20)。

接下来T行,每行一个正整数P(2 < P < 1e9),表示一组询问。

 
Output
对于每组数据输出一行,每一行一个数表示答案。
 
Sample Input
1
10
 
Sample Output
3
 
Source
 
Recommend
liuyiding   |   We have carefully selected several similar problems for you:  6113 6112 6111 6110 6109 
 

Statistic | Submit | Discuss | Note

题目链接:

  http://acm.hdu.edu.cn/showproblem.php?pid=6108

题目大意:

  给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数的充分必要条件是每一位加起来的和是B的倍数。

题目思路:

  【数学】

  设x=a0+a1p+a2p2+...=a0+a1+a2+...+a1(p-1)+a2(p2-1)+...,后面的式子都能提出p-1因子,因此a0+a1+a2+...若含有p-1因子一定满足,

  所以p-1一定是一个解,再看p-1的所有约数,均符合要求。故求p-1的因子个数。

 /****************************************************

     Author : Coolxxx
Copyright 2017 by Coolxxx. All rights reserved.
BLOG : http://blog.csdn.net/u010568270 ****************************************************/
#include<bits/stdc++.h>
#pragma comment(linker,"/STACK:1024000000,1024000000")
#define abs(a) ((a)>0?(a):(-(a)))
#define lowbit(a) (a&(-a))
#define sqr(a) ((a)*(a))
#define mem(a,b) memset(a,b,sizeof(a))
const double EPS=0.00001;
const int J=;
const int MOD=;
const int MAX=0x7f7f7f7f;
const double PI=3.14159265358979323;
const int N=;
const int M=;
using namespace std;
typedef long long LL;
double anss;
LL aans;
int cas,cass;
int n,m,lll,ans;
int prime[M/],e[M/],div_num[M]; // e[i]表示第i个素数因子的个数
bool flag[M];
void get_prime()
{
int i,j,k;
mem(flag,);
k=;
for(i=;i<M;i++)
{
if(!flag[i])
{
prime[k++]=i;
e[i]=;
div_num[i]=; //素数的约数个数为2
}
for(j=;j<k&&i*prime[j]<M;j++)
{
flag[i*prime[j]]=true;
if(i%prime[j]==)
{
div_num[i*prime[j]]=div_num[i]/(e[i]+)*(e[i]+);
e[i*prime[j]]=e[i]+;
break;
}
else
{
div_num[i*prime[j]]=div_num[i]*div_num[prime[j]];
e[i]=;
}
}
}
}
int main()
{
#ifndef ONLINE_JUDGE
// freopen("1.txt","r",stdin);
// freopen("2.txt","w",stdout);
#endif
int i,j,k;
int x,y,z;
// for(scanf("%d",&cass);cass;cass--)
for(scanf("%d",&cas),cass=;cass<=cas;cass++)
// while(~scanf("%d",&n))
{
scanf("%d",&n);
n--;
aans=;
m=n;
for(int q=;q*q<=n;q++)
{
x=;
while(m%q==)
{
m/=q;
x++;
}
aans*=x;
}
if(m!=)
aans*=;
cout<<aans<<endl;
}
return ;
}
/*
// //
*/

最新文章

  1. 符合我公司GIS开源解决方案的探讨
  2. 常见的java类
  3. python---time和datetime
  4. 系统研究Airbnb开源项目airflow
  5. UVA 10003 切木棍(普通DP)
  6. 【转】 Ucenter同步登录原理解析
  7. 数据库的存储引擎和SQL语言
  8. JAVA基础--继承和权限控制
  9. Xposed 学习笔记
  10. 流行的报表生成工具-JXLS
  11. Windows系统MySQL安装配置
  12. Activiti(二) springBoot2集成activiti,集成activiti在线设计器
  13. 原生js设置rem
  14. WCF Restful Service Get / Post请求
  15. Jmeter(三十二)Jmeter Question 之 “自定义函数开发”
  16. Vue2.0 开发移动端音乐webApp 笔记
  17. localtime 和 localtime_r
  18. 【BZOJ4515】[Sdoi2016]游戏 树链剖分+线段树
  19. elasticsearch启动时提示内存不足错误的解决方法
  20. 高可用Kubernetes集群-1. 集群环境

热门文章

  1. 【Luogu】P3387缩点(Tarjan缩点+深搜DP)
  2. [BZOJ1576] [Usaco2009 Jan]安全路经Travel(堆优化dijk + (并查集 || 树剖))
  3. Oracle Partition 分区详细总结
  4. Nova 组件详解
  5. hdu 5012 bfs 康托展开
  6. php生成压缩包
  7. Objective C语言中nil、Nil、NULL、NSNull的区别
  8. vue之条件渲染
  9. 在Ubuntu 10.10下安装JDK配置Eclipse及Tomcat
  10. webstorm bable