用c语言实现100以内数的分解
程序员文章站
2022-03-21 21:44:44
...
将100以内的数分解成他们的质因数,然后输出。例如4=2*2。
可将100以内的数分为两部分,一部分素数,另一部分就是合数,而素数的分解就是1乘以他本身,所以需要做的就是对合数的分解。下面看示例代码。
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
int pd, i, j,num = 2;
int sushu[100] = { 0 };
sushu[1] = 2;
printf_s("素数分解:\n");
//判断素数
for (j = 3; j < 101; j++){
pd = 0;
for (i = 2; i < j; i++){
if (j%i == 0){
pd++;
}
}
if(pd == 0){
sushu[num] = j;
num++;
}
}
//素数分解输出
for (i = 1; i < num; i++){
printf_s("%2d = %2d * 1\t", sushu[i], sushu[i]);
if (i % 5 == 0){
printf_s("\n");
}
}
printf_s("非素数分解:\n");
int js = 0;
i = 3;
//非素数分解输出
while (i<101){
for (j = 1; j < num; j++){
if (i == sushu[j]){
i++;
}
}
int h = i;
//开始分解
printf_s("%2d = ", i);
while(h != 1){
for (j = 1; j < num; j++){
if (h%sushu[j] == 0){
printf_s("%2d ", sushu[j]);
h /= sushu[j];
if (h != 1){
printf_s("*");
}
}
}
}
if (js % 5 == 0){
printf_s("\n");
}
i++;
}
getchar();
getchar();
return 0;
}
推荐阅读
-
C#用递归算法实现:一列数的规则如下: 1、1、2、3、5、8、13、21、34,求第30位数是多少
-
教你编写c语言实现输入10个数按从大到小的顺序排序输出
-
用c语言实现登录密码的认证
-
c语言:求多项式1-1/2+1/3-1/4+...+1/99-1/100的值,3种循环实现
-
用c语言实现,两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
-
用C语言打印100~200之间的素数的操作分享
-
c语言实现求解这样的6位数:SQRT(6位数)=3位数,9个数字互不相同(SQRT表示开平方)
-
C++语言------顺序表实现,用动态数组的方法
-
C语言实现 用函数实现两个数的交换
-
用C语言编写函数,实现strlen计算字符串长度的功能