首页 > 试题广场 >

约数的个数

[编程题]约数的个数
  • 热度指数:70531 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
输入n个整数,依次输出每个数的约数的个数

输入描述:
输入的第一行为N,即数组的个数(N<=1000)
接下来的1行包括N个整数,其中每个数的范围为(1<=Num<=1000000000)


输出描述:
可能有多组输入数据,对于每组输入数据,
输出N行,其中每一行对应上面的一个数的约数的个数。
示例1

输入

5
1 3 4 6 12

输出

1
2
3
4
6
头像 philos
发表于 2021-02-01 16:26:33
思路 题干很简单,但是暴力方法是会超时的 对于数 n,因为小于 的数 i 如果能整除n,则必定还有一个大于 的因数j,使得 ,+2是把这两个因数都算进去了。最后如果 i=n,说明有两个相同的i是因数,只算一个。 #include<iostream> using namespace s 展开全文
头像 薇薇啵啵
发表于 2020-04-25 15:53:17
/* * 因数个数(使用到质数筛法) */ #include <iostream> #include <cstdio> #include <vector> #include <math.h> using namespace std; const 展开全文
头像 GMRCCC
发表于 2022-02-14 11:04:21
每个输入的n, 对sqrt(n)以下的进行判断,若存在一个约数,则大于sqrt(n)的也有一个约数,每次+2即可 对sqrt(n)的边界值单独判断,若sqrt(n)*sqrt(n)刚好等于n本身,则需要减去一个计数(sqrt(n)算了两次) #include <iostr 展开全文
头像 星云·忒弥斯
发表于 2021-08-19 20:07:24
include int main(){ int a0, a1, a2, p, q, k; scanf("%d%d%d%d%d",&a0,&a1,&p,&q,&k); // a1 %= 10000; //如果读入数据 展开全文
头像 虚数五行区
发表于 2023-08-25 10:22:16
//1 #include<iostream> using namespace std; int main(){ int n, num; while (cin >> n) { for (int i = 0; i<n; i++) 展开全文
头像 子豪不自豪
发表于 2023-12-25 20:16:26
#include <stdio.h> int main() { int a; while (scanf("%d", &a) != EOF) { // 注意 while 处理多个 case // 64 位输出请用 printf( 展开全文
头像 牛客440904392号
发表于 2024-10-04 20:33:21
//试除法 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); 展开全文
头像 KDDA十三尧十三
发表于 2022-02-17 15:37:59
#include<iostream> #include<cmath> using namespace std; //用开根号,将时间复杂度降为nlogn int divisor_count(int x) {   &n 展开全文
头像 MountainsHao
发表于 2024-03-27 11:05:30
#include <stdio.h> #include <math.h> int count_divisors(int num) { int count = 0; int sqrt_num = (int)sqrt(num); for (int i = 展开全文
头像 宁静的冬日
发表于 2022-03-05 13:06:52
【C++】已通过 关键:开根号,降低复杂度 ">#include<math.h> using namespace std; #define MAXN 1000; #define MAXNum 1000000000; //求约数的个数 int f(int num) { int index 展开全文

问题信息

难度:
224条回答 30960浏览

热门推荐

通过挑战的用户

查看代码
约数的个数