分解质因数 电玩女神 2022-06-01 13:52 272阅读 0赞 问题描述 求出区间\[a,b\]中所有整数的质因数分解。 输入格式 输入两个整数a,b。 输出格式 每行输出一个数的分解,形如k=a1\*a2\*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例) 样例输入 3 10 样例输出 3=3 4=2\*2 5=5 6=2\*3 7=7 8=2\*2\*2 9=3\*3 10=2\*5 提示 先筛出所有素数,然后再分解。 数据规模和约定 2<=a<=b<=10000 思路:先用函数求出10000以内的质数,存到数组里。然后用双层循环,外层控制\[a,b\]范围,内层有三个,第一个循环作用是直接输出\[a,b\]范围内的质数,第二个循环的作用是对非质数的数进行一个判断处理,判断思路:对要分解的数进行除法操作,然后在用if语句判断是否可以整除,如果可以整除,我们将存到数组里(输出格式需要,我也不知道怎么处理这种输出格式,只能用这种笨方法)。假设这个数字第一次可以被(为了方便理解,我用2代替一下)2整除,那么第二次它也同样可能2整除,所以我们要将第二个循环从新由2的下标开始循环。这里我是用if加上0和1的方式判断条件,当然整篇代码都用了不少这样的例子。第三个循环是对第二个循环求出的值按照题目给出的标准的输出格式输出。(小白还请多多关照) #include <stdio.h> #include <windows.h> int fun22(int * a) { int i, j, m = 0, true_ = 0; for(i = 2; i < 10000; i++) { true_ = 0; for(j = 2; j < i / 2 + 1; j++) { if(i % j == 0) true_ = 1; } if(!true_) a[m++] = i; } return m; } void fun21(void) { int n, m, x, y; int i, j, true_; int a[5000], k, b[10000], kk = 0; scanf("%d%d", &n, &m); k = fun22(a); for(n ; n <= m; n++) { j = n; true_ = 0; for(i = 0; i < k; i++) { if(n == a[i]) { printf("%d=%d\n", n, n); true_ = 1; break; } } if(true_) continue; memset(b, 0, sizeof(b)); kk = 0; i = 0; while (i < k) { x = j / a[i]; true_ = 0; if(j == a[i] * x) { j = x; b[kk++] = a[i]; y = j / a[i]; if(j != 0 && j == y * a[i]) true_ = 1; } if(j == 0 || a[i] > n) break; if(true_) i = 0; else i++; } printf("%d=", n); for(i = 0; i < kk; i++) { if(i == kk - 1) printf("%d", b[i]); else printf("%d*", b[i]); //printf("%d%c", b[i], n == kk - 1 ? '*': ''); } if(n < m) printf("\n"); } } int main() { system("color 0a"); fun21(); return 0; }
相关 分解质因数 原理: ![13dda8e0e0e5492ea0a2a4912d8f48d8.png][] 做法: 按照枚举约数的做法去枚举质因子,在枚举到质因子的倍数之前先枚举到质因子 àì夳堔傛蜴生んèń/ 2024年03月30日 09:12/ 0 赞/ 30 阅读
相关 质因数分解 一道清华的复试题,我先后看了两份代码,收获匪浅,分别摘自下面两个博客: [https://blog.csdn.net/Little\_Kid\_Kang/article/de 深藏阁楼爱情的钟/ 2023年03月14日 05:54/ 0 赞/ 142 阅读
相关 分解质因数 上一篇博客:[质数的筛法][Link 1] > 写在前面:大家好!我是`AC-fun`,我的昵称来自两个单词`Accepted`和`fun`。我是一个热爱ACM的蒟蒻。如果 Love The Way You Lie/ 2022年10月22日 04:12/ 0 赞/ 214 阅读
相关 分解质因数 public class DecomposePrimeFactor \{ public final static int NUM = 154; public static vo Dear 丶/ 2022年09月30日 06:22/ 0 赞/ 209 阅读
相关 分解质因数 问题描述 求出区间\[a,b\]中所有整数的质因数分解。 输入格式 输入两个整数a,b。 输出格式 每行输出一个数的分解,形如k=a1\a2\a3...( 超、凢脫俗/ 2022年08月05日 02:54/ 0 赞/ 243 阅读
相关 分解质因数 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。 灰太狼/ 2022年07月03日 18:20/ 0 赞/ 241 阅读
相关 分解质因数 分解质因数 当无法分解是输出“no answer” <table style="font-size:12px; color:rgb(51,51,51); line-heig 淩亂°似流年/ 2022年06月06日 11:42/ 0 赞/ 264 阅读
相关 分解质因数 问题描述 求出区间\[a,b\]中所有整数的质因数分解。 输入格式 输入两个整数a,b。 输出格式 每行输出一个数的分解,形如k=a1\a2\a3...( 电玩女神/ 2022年06月01日 13:52/ 0 赞/ 273 阅读
相关 分解质因数 void solution(int num) { int i = 2; while (num != 1) { i ╰半夏微凉°/ 2022年05月09日 01:46/ 0 赞/ 302 阅读
还没有评论,来说两句吧...