感悟网 导航

C语言:任意给定大于1的整数,计算其最大质因数。 任意给定一个大于1的整数n,设计一个算法求出n的所有质因数

作者&投稿:龚宙 (若有异议请与网页底部的电邮联系)
C语言编程,输入一个大于1的正整数,将其分解为1和各个质数因子相乘。~



#includeint main(){int x,i; scanf("%d",&x); printf("%d=1",x); for(i=2;i*i1)printf("*%d",x); printf("
"); return 0;}

算法分析:根据质数的定义,很容易设计出下面的步骤:
第一步:判断n是否等于2,若n=2,则n是质数;若n>2,则执行第二步.
第二步:依次从2至(n-1)检验是不是n的因数,即整除n的数,若有这样的数,则n不是质数;若没有这样的数,则n是质数.
这是判断一个大于1的整数n是否为质数的最基本算法.

建议先用注释写逻辑布局,然后分块写代码,最后集成一下。

//输入一个数
//判断其大于1的因数并放入a数组(此模块设为函数,返回数组长度)
//判断a数组中的数大于1的因数(递归调用第二步的函数,如果返回的数组长度等于1,放入b数组)
//找出b数组中最大的数

《任意给定一个大于1的整数n,设计一个算法求出n的所有因数。》
答:n的因数,设为x,可得n=kx,k为常数,明显,k也为n的因数。所以求n的因数,可以求枚举1到n^0.5的所有数,判断这个数是否能被n除尽,那么n/x必然也为n的因数,且除了x^2=n的特殊情况,其他的x和n/x都不相等。为了看起来舒服,可以排序一下。c语言代码 include<stdio.h> include<stdlib.h>...

《任意给定一个大于1得正整数n,设计一个算法求出n得所有因数。这题要...》
答:include <stdio.h>void main(){ int i; int number; printf("请输入一个大于1的正整数"); scanf("%d",&number); for(i=2;i<number;i++) { if(number%i==0)//能整除,说明是因子 printf(" %d ",i); }} ...

《任意给定一个大于1的整数n,设计一个算法求出n的所有因数。另外啥是因数...》
答:public void YinShu(int n){ for(Int i=1;i<=n;i++){ if(n%i==0){ System.out.println(i);} } } 除法里,如果被除数除以除数,所得的商都是自然数而没有余数,就说被除数是除数的倍数,除数是被除数的因数.

《C语言:任意给定大于1的整数,计算其最大质因数。》
答://输入一个数 //判断其大于1的因数并放入a数组(此模块设为函数,返回数组长度)//判断a数组中的数大于1的因数(递归调用第二步的函数,如果返回的数组长度等于1,放入b数组)//找出b数组中最大的数

《用C语言编一个程序:任意给定一个大于1的正整数,求它的所有因数》
答:{ int number,i=1; printf("请输入一个整数:\n"); scanf("%d",&number); printf("它的因数是:\n"); while(i<(sqrt(number)+1)) { if((number%i)==0) { printf("%4d,",i); if((number/i)!=i) { printf("%4d,",(number/i)); } } i++; } return 0; } ...

《任意给定一个大于1的整数n,试设计一个算法判定n是否为质数》
答:for a:=1 to 根号n do if n/a 为不整数 then a=a+1 ifa大于n then输出(‘a为质数’)else 输出(‘a不为质数’)

《任意给定一个大于1的正整数n,设计一个算法求出n的所有因数.》
答:我就是高二的。第一步:输入一个大于1的正整数n;第二步:令a=1;第三步:令b是n除以a的余数;第四步:若b=0,则输出a;第五步:令a=a+1;第六步:若a<=n,则回到第三步。

《任意给定一个大于1得正整数n,设计一个算法求出n得所有因数。这题要...》
答:我这里的代码可以达到时间复杂度O(√n)include void main(){ int i;int number;printf("请输入一个大于1的正整数");scanf("%d",&number);for(i=2;i * i 追问:看不懂。追问:数学题的规范解题步骤。追问:谢谢啦。追答:采纳个最佳答案呗~评论 0 0 0 加载更多 ...

《任意给定一个大于1的整数,设计一个算法求出n的所有因数》
答:public static void test(int n){ if(n <= 1){ System.out.println("数字不可小于2");}else{ for(int i=2;i<n/2+1;i++){ if(n%i == 0){ System.out.println(i + " ");} } } } 这种情况是因数不带本身的。

《任意给定一个大于1的正整数n,设计一个算法求出n的所有正因数_百度知 ...》
答:解析:第一步:给定一个大于一的正整数n,第二步:依次以(2n-1)的整数d为除数去除n,检查余数是否为0,若是,则d是n的因数;若不是,则d不是n的因数。第三步:在n的因数中加入1和n,第四步:输出n的所有因数。

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网