百度试题 结果1 题目问题描述:输入一个正整数n,把它分解成质因子相乘的形式运用C语言 帮忙编程! 相关知识点: 试题来源: 解析 int x,i,n=0;scanf("%d",&x);for(i=2;i反馈 收藏
C语言程序:将一个正整数分解成若干素数的幂次方的乘积一个整数可唯一地分解为一些不同质因子的若干次方的乘积.即:对于一个大于1的整数a,可表示为a = p1^e1*p2^e
1 首先打开vc6.0, 新建一个vc项目 2 添加头文件 3 添加main主函数 4 定义 n, i 两个变量 5 使用scanf给n赋值 6 使用for循环 7 用while作为内层循环 8 使用printf打印i 9 使用if条件语句 10 运行程序
includestdio.h/*求比n小且和n互质的数的个数*/ void break_up(long *p,long n){ long m=n;int i=2;while(m!=1){ if(m%i==0){ if(*p!=i else p=i;m/=i;printf(%ld*,i);} else { i++;} } } void main(){ long n,a[100];int i=0;while(scanf(%ld,i100;i++)...
0){printf("%d*", i);n /= i;}else++i;}printf("%d\n", n);} 注:这是一个更简洁的写法,我提出来供大家参考。其实不需要测试 i 是否质数。假如 i 是合成数,比 i 小的 i 的质因数早就除掉了。而且 i < n 的循环用 while 不用 do-while,最后不需要倒退擦掉一个 *。
百度试题 结果1 题目输入一个正整数n,把它分解成质因子相乘的形式运用C语言 帮忙编程! 相关知识点: 试题来源: 解析 int x,i,n=0; scanf("%d",&x); for(i=2;i 分析总结。 输入一个正整数n把它分解成质因子相乘的形式反馈 收藏
void break_up(long *p,long n){ long m=n;int i=2;while(m!=1){ if(m%i==0){ if(*p!=i&&*p)(++p)=i;else p=i;m/=i;printf("%ld*",i);} else { i++;} } } void main(){ long n,a[100];int i=0;while(scanf("%ld",&n)!=EOF&&n!=0){ for(i=0;i<100...