解题思路: 短除法
参考代码:
#include <stdio.h> #include <math.h> int main(){ int factor[4]; int i = 2,j,k = 0,n; scanf("%d", &n); printf("%d=", n); while(n != 1){ if(n%i == 0){ //n被i整除则i是n的因子 for(j = 2; j <= sqrt(i); j++){ //判断因子i是不是质因子 if(i%j == 0){ break; } } if(j > sqrt(i)){ //j大于sqrt(i)则因子i是质因子 factor[k] = i; k++; } n /= i; //改变n值 i = 1; //回溯 } i++; } printf("%d", factor[0]); //因为输出格式的问题,所以先输出factor[0]保证末尾没有多余的空格 for(i = 1; i < k; i++){ printf("*%d", factor[i]); } return 0; }
0.0分
0 人评分
C语言训练-求素数问题 (C语言代码)浏览:722 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:1030 |
简单的a+b (C语言代码)浏览:598 |
最小公倍数 (C语言代码)浏览:1028 |
打印十字图 (C语言代码)浏览:2708 |
printf基础练习2 (C语言代码)浏览:503 |
字符逆序 (C语言代码)浏览:508 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:512 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:696 |
陶陶摘苹果2 (C++代码)浏览:541 |