感悟网 导航

任意给定一个大于1的正整数n,设计一个算法求出n的所有正因数 任意给定一个大于1的正整数n,设计一个算法求出n的所有因数.

作者&投稿:邵曼 (若有异议请与网页底部的电邮联系)
任意给定一个大于1得正整数n,设计一个算法求出n得所有因数。这题要怎么做?~

楼上的时间复杂度为还是比较高 为O(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;
第二步:令a=1;
第三步:令b是n除以a的余数;
第四步:若b=0,则输出a;
第五步:令a=a+1;
第六步:若a<=n,则回到第三步。

解析:第一步:给定一个大于一的正整数n,
第二步:依次以(2n-1)的整数d为除数去除n,检查余数是否为0,若是,则d是n的因数;若不是,则d不是n的因数。
第三步:在n的因数中加入1和n,
第四步:输出n的所有因数。

对于数据范围 你自己修改a,b的类型吧

#include"stdio.h"
#include"math.h"
void main()
{
int a,b;
puts("Enter a;");
scanf("%d",&a);
for(b=1;b<=sqrt(a);b++)
if(a%b==0)
printf("%d=%d*%d\n",a,b,a/b);
}

#include "stdafx.h"
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int n;
cout<<"Please input a number: ";
cin>>n;
cout<<n<<"=";
for(int i=2;i<=n;i++){
while(n!=i)
{
if(n%i==0){
cout<<i<<"*";
n=n/i;
}
else break;
}
}
cout<<n<<endl;
}

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

《任意给定一个大于1的整数n,设计一个算法求出n的所有因数(n=18)》
答:18=2*3^2,因此所有因数为1,2,3,6,9,18。根据从m=1开始,用循环语句m=m+1和判断语句m<=n:?及n/m是否余数为0?自己设计算法吧

《任意给定一个大于一的整数n,设计一个算法求出n的所有因数》
答:1、用筛法找质数 筛法,是求不超过自然数N(N>1)的所有质数的一种方法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛法(sieve of Eratosthenes)。具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留...

《设计一个算法,输入一个正整数,求出它的所有正因数.》
答:任意给定一个大于1的正整数n,设计一个算法求出n的所有因数?程序如下(c):main(){ int n,n;scanf("%d",&n);printf("n's factors are:\n");for(n=1;n<=n;n )if(n%n==0)printf("%d\t",n);}

《任意给定一个大于1的整数n,设计一个算法求出n的所有因数。 并编程...》
答:int x,y,z;int data[1024];int i=0;scanf("%d",&x);//输入要求因的数 for(y=2;y<x;y++) //循环从2开始到x-1结束 { for(z=x-1;z*y>x;z--); //循环,z从后面杀上来,知道其二者之积小于或等于x,才结束 if(z*y==x) //检测是哪种结束情况,并对正确情况...

《求”任意给定一个大于1的整数n,设计一个算法求出n的所有因数“的程序框...》
答:public List<int> GetFactor(int number){ List<int> listResult = new List<int>();listResult.Add(1);listResult.Add(number);for (int i = 2; i < number; i++){ if (i < number / i){ if (number % i == 0){ listResult.Add(i);listResult.Add(number / i);} else ...

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

《任意给定一个大于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 + " ");} } } } 这种情况是因数不带本身的。

《任意给定一个大于一的整数n,设计一个算法,求出n的所有因数,画出程序...》
答:23

《任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积》
答:第一种方法:第一步,给定一个正实数r ;第二步,计算以r为半径的圆的面积S=∏r^2 ;第三步,得到圆的面积S 。第二种方法:第一步,给定一个大于1的正整数n ;第二步,依次以2~(n-1)的整数d为除数去除n,检查余数是否为0.若是,则d是n的因数;若不是,则d不是n的因数 ;第三步,...

   

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