对90 ~ 100以内的所有整数,逐一对其进行质因子分解,并按照质数因子从小到大顺序以乘积形式输出,如90=12335 如果该整数是一个素数,则其质因子为其本身,例如97相应输出97=1*97。
【输入形式】
无
【输出形式】
90=12335。
该回答引用ChatGPT
#include <stdio.h>
int main() {
for (int i = 90; i <= 100; i++) {
int num = i;
printf("%d=", num);
for (int j = 2; j <= num; j++) {
while (num % j == 0) {
printf("%d", j);
num /= j;
if (num != 1) {
printf("*");
}
}
}
if (num == i) {
printf("1*%d", i);
}
printf("\n");
}
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:#include<stdio.h>
int Init_array(int arr[]){ //初始化数组
int num = 1;
for(int i = 0; i < 100; i++){
arr[i] = num;
num++;
}
}
int binary_rearch(int *arr,int n){ //二分查找
int count = 0,max,min,mid,len = 100;
int sub;
max = arr[len-1]; min = arr[0];
while(min <= max){
mid = (max+min)/2;
count++;
if(n < arr[mid]){
max = mid-1;
}
else if(n > arr[mid]){
min = mid+1;
}
else {
sub = mid;
printf("该数的下标为:arr[%d],共查找了%d次!\n",sub,count);
return 1;
}
}
return -1;
}
int main(){
int num[100],n;
printf("请输入你要找的数:\n");
scanf("%d",&n);
Init_array(num);
int flag = binary_rearch(num,n);
if(flag == -1)
printf("该数没有找到!\n");
return 0;
}