【同余】HDU 6108 小C的倍数问题

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

【题意】

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

【思路】

当时记起了离散数学课上学过为啥10进制下是3和9(因为10,3,9关于1同余),所以想到答案是n-1的因子个数

【AC】

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<string>
 5 #include<algorithm>
 6 #include<cmath>
 7
 8 using namespace std;
 9
10 int n;
11
12 int factor(int x)
13 {
14     int cnt=0;
15     for(int i=1;i*i<=x;i++)
16     {
17         if(x%i==0)
18         {
19             if(i*i!=x)
20             {
21                 cnt+=2;
22             }
23             else
24             {
25                 cnt+=1;
26             }
27         }
28     }
29     return cnt;
30 }
31 int main()
32 {
33     int T;
34     scanf("%d",&T);
35     while(T--)
36     {
37         scanf("%d",&n);
38         n-=1;
39         int ans=factor(n);
40         printf("%d\n",ans);
41     }
42     return 0;
43 }

时间: 2024-10-07 21:59:05

【同余】HDU 6108 小C的倍数问题的相关文章

HDU 6108 小C的倍数问题 数论

小C的倍数问题 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6108 Description 根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数.反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3的倍数.现在给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数的充分必要条件是每一位加起来的和是B的倍数. Input 第一行一个正整数T表示数据组数(1<=T<=20).接下来T行,每行一个正整数P(

HDU 6108 小C的倍数问题 【数学】 (2017&quot;百度之星&quot;程序设计大赛 - 初赛(A))

小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的倍数. 现在给定进制

hdu 6108 小C的倍数问题

小C的倍数问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 277    Accepted Submission(s): 137 Problem Description 根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数.反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3的倍数. 现在给定进制

hdu 4521 小明系列问题——小明序列 (间隔至少为d的LIS 两种解法)

先附上资源地址:http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握. 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂. 1. 计算机的核心是CPU,它承担了所有的计算任务.它就像一座工厂,时刻在运行. 2. 假定工厂的电力有限,一次只能供给一个车间使用.也就是说,一个车间开工的时候,其他车间都必须停工

小C的倍数问题

小C的倍数问题 Accepts: 1990 Submissions: 4931 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description 根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数.反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3的倍数. 现在给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数的

2017&quot;百度之星&quot;程序设计大赛 - 初赛(A)-1001.小C的倍数问题(HDU6108) 1005.今夕何夕-蔡勒公式 (HDU6112)

补完题?不存在的. 这么久了,还是一条咸鱼,看一堆乱七八糟的东西,写一堆没用的水题,一点进步都没有,还是那么菜,菜的掉渣. 这个百毒之星初赛A还会写两道最简单的水题,初赛B一点也不会,菜的难过... 最近看的dp和kmp,垂死挣扎,一点一点看吧... cf打的还是那么弱,一点进步都没有... 好久没写博客了,最近写的都是水题,都没有写博客的必要,但是还是来水一水(:′д`)ゞ,要不就没有写博客的习惯了. 吐槽百毒之星,比赛的时候1005交上去,莫名其妙Output Limit Exceeded,

百度之星初赛A轮 hdu 6108 6112 6113

hdu 6108 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 5 int main(){ 6 int t; 7 cin>>t; 8 while(t--){ 9 ll x; 10 scanf("%I64d",&x); 11 ll ans=0; 12 for(int i=1;i*i<=x;i++){ 13 if((x-1)%i==0) { 14 a

HDU 4500 小Q系列故事——屌丝的逆袭

腾讯的题目,一条简单的搜索题目,适合初学者练习代码能力,或者是高手休息脑子的题,呵呵,不需要动脑了,只动手打代码就过了. 不过腾讯这故事有点坏啊,给人透露了两个信息: 1 腾讯不拘一格降人才 2 进入腾讯就可以屌丝逆袭了 腾讯是不是还想说腾讯的mm特别多? 呵呵,出题不忘给自己宣传一下. #include <stdio.h> #include <limits.h> const int MAX_NM = 20; int N, M; int matrix[MAX_NM][MAX_NM]

[SinGuLaRiTy] 百度之星程序设计大赛 初赛 1001 小C的倍数问题

小C的倍数问题 Time Limit: 2000/1000 MS (Java/Others)   Memory Limit: 32768/32768 K (Java/Others) Problem Description 根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数.反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3的倍数. 现在给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数的充分必要条件是每一位加起来的和是B的倍数. Input 第一