计算并输出正整数n所有因子(1和n除外)之和,用while 和do while语句

如题所述

第1个回答  2011-04-15
楼上的把循环条件中的n换成n/2,效率更好
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int n,i,t,sum;
cin>>n;
i=2;sum=0;
while(i<=n/2)
{
if(n%i==0)
{
sum=sum+i;
}
i++;
}
cout<<sum<<endl;
return 0;
}本回答被提问者采纳
第2个回答  2011-04-15
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int n,i,t,sum;
cin>>n;
i=2;sum=0;
while(i<n)
{
if(n%i==0)
{
sum=sum+i;
}
i++;
}
cout<<sum<<endl;
return 0;
}

#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int n,i,sum;
cin>>n;
i=2;sum=0;
do
{
if(n==2)break;
if(n%i==0)
sum=sum+i;
i++;
}while(i<n);
cout<<sum<<endl;
return 0;
}

c语言 输入一个正整数n,输出n的所有因子
步骤1:初始化两个整数变量n和m,确保它们都是大于2的正整数,作为输入。步骤2:设置一个临时变量t,其值为m,同时定义一个变量i,初值设为2,用于遍历可能的因子。接下来,使用do-while循环进行操作。在循环内部,你需要检查i与m的关系,计算i除以m的余数,记为变量r。判断的核心在于,如果r为0,...

c语言 输入一个正整数n,输出n的所有因子
1、定义整型变量,用于程序的运算。2、输入两个大于2的正整数,保存在变量n和m中。3、获取临时变量t的值为m,设置i的初值为2。4、用do-while语句执行循环,判断条件为i<m。5、用i对整数m求余,保存在变量r中。6、判断i是否m的质因子,如果是则继续判断是否n的质因子,如果不是n的质因子,则...

c语言 输入一个正整数n,输出n的所有因子
把if(x=0)改成 if (x == 0)这种错误初学者经常会犯,老手也不能避免,一个偏方是写这种语句时把数值放在前面,比如写成 if (0 == x)这样如果你漏了个等号,写成了 if (0 = x),编译时编译器会报错

C语言:输入一个正整数, 计算并显示出该数的各位数字之和.
printf("sum=%d\\n",sum);}

vb编程输入一个正整数,编程求该数的所有质因子。
把输入的字符串转换为数值型N以后,当n大于1就进行循环。用另一个变量I从二2开始,这时使用一个内循环来进行检测,当n÷i的余数等于零的时候,就说明n当中有i这个因子,这时就输出一次i(如果是第二次以上的输出就先输出一个乘号*),然后把n的数值除以i,当这个内循环结束的时候,说明i的因子已经...

想深入学习C#语言,有没有达人知道C#的好的资料呢?
1、从键盘输入一个正整数,按数字的相反顺序输出。2、从键盘上输入两个整数,由用户回答它们的和,差,积,商和取余运算结果,并统计出正确答案的个数。3、写一条for语句,计数条件为n从100~200,步长为2;然后再用while语句实现同样的循环。4、编写一段程序,运行时向用户提问“你考了多少分?(0~100)”,接受输入...

编程,输入一个正整数,输出它的所有质数因子(如180的质数因子为2、2...
public class Main{ public static void main(String[]args){ Scanner str=new Scanner(System.in);long num=str.nextLong();String result=getResult(num);System.out.println(result);} public static String getResult(long num){ int pum=2;String result="";while(num!=1){ while(num%pum...

编程题,输入一个正整数,输出它的所有质数的因子(如180的质数因子为2...
public static void main(String[]args){ Scanner str=new Scanner(System.in);long num=str.nextLong();String result=getResult(num);System.out.println(result);} public static String getResult(long num){ int pum=2;String result="";while(num!=1){ while(num%pum==0){ num=num\/...

从键盘输入一个0~1000之间的任意整数,输出该整数的所有因子.
include<iostream.h> int main(){ int a,i;cout<<"input:";cin>>a;i=1;cout<<"output:";while(i<=a){ if(a%i==0)cout<<i<<" ";i++;} return 0;} 以上程序在win2000下通过c-free编译成功

从键盘上输入两个正整数M和N,求最大公因子. VB
你明白这种求公因数算法的思路就理解了。这是辗转相除法 比如求 18 和 48 的最大公因数 第一部 大数除以小数取余数 48÷18=2……12 第二部 余数是零,结束运算,小数即为最大公因子;余数不是零,继续利用辗转相除法,小数除以余数再取余数 18÷12=1……6 第三步 如果余数是零,则计算结束...

相似回答