c - 在哪里放置强大数字的声明?
问题描述
我已经制作了这个计算数字因式分解的程序,例如60 = 2^2 * 5 * 3
. 如何修改我的代码以打印强大的数字,例如9000 = 2^3 * 3^2 * 5^3
不使用 math.h 库和不使用数组?非常感谢!!
#include<stdio.h>
#define MAX 1000
int main(){
int num;
int counter;
int number;
char factorizationOutput;
int isAchiles = 0;
int factor=2;
for(counter=2;counter<=MAX;counter++){
isAchiles = 1;
number=counter;
int factor=2;
while(factor<number){
int power=0;
if(number%factor==0){
while(number%factor==0){
number=number/factor;
power++;
}
if(power == 1){
isAchiles = 0;
}
printf("%d^%d",factor,power);
if(number!=1)
printf(" X ");
}
factor++;
}
if(number!=1)
printf("%d^1.\n",factor);
if(isAchiles == 1){
printf("factorazation of number %d is: ",counter);
}
}
}
解决方案
#include<stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
printf("%d = ", n);
for(int i = 1; i <= n; i++)
{
int count = 0;
for(int j = 1; j <= i; j++)
{
if(i % j == 0)
{
count++;
}
}
int l = 0;
if(count == 2)
{
while(n % i == 0)
{
l++;
n = n/i;
}
printf("%d^%d*", i, l);
}
}
}
推荐阅读
- php - 正则表达式或语句
- couchbase - 将多节点 Couchbase 与 Springboot 集成
- azure - 创建 Azure Cloud Shell 存储时遇到问题
- r - 根据列中的最大值对列进行排序 - R 数据框排列
- javascript - 无法将数据从父组件传递到子组件
- regex - 处理条件多次捕获正则表达式?
- javascript - 在子进程的数据事件中使用 setTimeout 是否有理由导致任意长时间的延迟?
- ios - 生成的 IPA 太小,我无法在我的 mac 上打开它
- gradle - 如何解决 IntelliJ 中的“无法将 'String' 分配给 'Publication'”Gradle 错误?
- google-apps-script - Google Sheet 在单元格具有特定值时发送电子邮件