vb中 ,从键盘上输入任一正整数n,判断该数是否是完全数。如果一个数的所有因子和正好等

供稿:hz-xin.com     日期:2025-01-12
输入一个正整数n,判断该整数是否为完全数。如果是完全数,则输出“Yes”,否则输出“No”。

完全数是要排除自身因子的自然数,所以在for循环中不能取n,即要把i<=n改为i<n,for循环语句变为
for(i=1;i<n;i++)
{
//其他代码
}

******************************************************************
判断完全数
Private Sub Command1_Click()
Dim X, I, Sum As Long
X = CLng(InputBox("输入一个整数"))
For I = 1 To X - 1
If X Mod I = 0 Then Sum = Sum + I
Next
MsgBox IIf((Sum = X), "是完全数", "不是完全数")
End Sub

#include <stdio.h>
Int main()
{
int i,j,k,n,sum;
for(i=2;i<=n;j=i++)
{
for(k=2,sum=0;k<j;k++)
{
if(j%k==0)
sum+=k;
}
if(sum==i)
printf("%d\n",i);
return 0;
}
}
  完全数就是它除了本身以外的因数和等于其本身。
  6,28,496,8128,33550336……都是完全数
  公式:如果有一个自然数n,符合(2的n次方-1)是质数,那么(2的n次方-1)*(2的n次方)/2是完全数。
  历史
  大数学家欧几里德曾推算出完全数的获得公式:如果2^p-1质数,那么(2^p-1)X2^(p-1)便是一个完全数。
  例如p=2,2^p-1=3是质数,(2^p-1)X2^(p-1)=3X2=6,是完全数。
  例如p=3,2^p-1=7是质数,(2^p-1)X2^(p-1)=7X4=28,是完全数。
  但是2^p-1什么条件下才是质数呢?
  事实上,当2^p-1是质数的时候,称其为梅森素数。至今,人类只发现了47个梅森素数,也就是只发现了47个完全数。

编写程序,从键盘输入任意n个整数,用指针方法找出其中最大和最小的数...
include<stdio.h> int main(){ int a,b=0,c=100;int *pmax,*pmin;scanf("%d",&a);pmax=&b;pmin=&c;while(a!=-1) \/\/输入-1结束 { if(*pmax<a)pmax=a;if(*pmin>a)pmin=a;scanf("%d",&a);} printf("最大值:%d,最小值:%d。",*pmax,*pmin);while(1);return ...

用C语言编写:从键盘输入任意一个正整数,求其各位数字立方和
本人也是学C语言的,以下的程序是按照你的要求编写的:#include <stdio.h> \/\/求输入数各位数的立方和 void main(){ int x,sum=0,j;printf("请输入一个正整数:");scanf("%d",&x); \/\/输入一个数 while(x!=0) \/\/判断X是否为零 { j=x%10; \/\/取个位数字 sum+=j*j*...

输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计各等级成绩的个...
include<stdio.h> main(){ int n,i;int A=0,B=0,C=0,D=0,E=0;\/\/用来统计各阶段学生成绩的人数,初始值都为0;float score;\/\/定义成绩变量;float ave=0;\/\/定义平均成绩 float num=0;\/\/定义全部成绩总和 scanf("%d",&n);\/\/从键盘输入学生成绩的个数 for(i=1;i<=n;i++){ ...

输入一个正整数 n (1<n<=10),再输入 n 个整数,将它们从大到小排序后输 ...
include <stdlib.h> include <iostream> using namespace std;int A[10];int cmp(const void * a , const void * b){ return *(int*) a - *(int*)b;} int main(){ int n;cin >> n;for (int i = 0; i < n; i++)cin >> A[i];\/\/ qsort(A , n , sizeof(int)...

c语言编程:输入一个正整数n,判断它是否为素数
include<iostream> include<cmath> using namespace std;int main(){ int a,b,i,flag=true;cin>>a;b=sqrt(a);for(i=2;i<=b;i++){ if(a%i==0){ flag=false;break;} } if(flag){ cout<<a<<"是素数"<<endl;} else { cout<<a<<"不是素数"<<endl;} return 0;} ...

求解答C语言编程问题!10分急悬!谢谢了!
if(a%b==0)printf("%d%可以被d整除",a,b);else printf("%d不能被%整除d"a,b);} 2.编写一个程序,把从终端上输入的整数用英语显示该整数的每一位数 字.如果用户输入了392,那么程序应显示three nine two.include<stdio.h> main(){ int n,a,b,c;printf("请输入任一三位数整数:\\n")...

C语言编程实现:从键盘中输入任意一个多位的整数(位数不确定),将其每一...
思路:定义一个字符数组,利用该数组接收键盘输入的整数,接着依次遍历该数组并输出。参考代码:include "stdio.h"int main(){ int i;char a[100];gets(a);\/\/接收键盘输入 printf("%c",a[0]);\/\/先输出第一个字符 for(i=1;a[i]!='\\0';i++)\/\/接着输出各个字符 printf("$%c"...

从键盘输入一个正整数n,求大于1且小于n的所有奇数之和用C语言_百度知 ...
在Excel的Sheet1中的A列输入任意的整数,均可在B列相应的行中显示所输入的整数里各位奇数数字的和。详见附件!附件:求每位数字为奇数之和.xls

编程实现:从键盘任意输入一个三位正整数,将该数分解成个位、十位、百 ...
include<stdio.h> int main(){ int n,k=0;int a[11]={0};scanf("%d",&n);while(n){ a[k++]=n%10;\/\/提取各个位上的数,储存在数组a中 n\/=10;} for(int i=0;i<k;i++)\/\/冒泡排序 for(int j=0;j<k-i-1;j++)if(a[j]>a[j+1]){ int t;t=a[j];a[j]=a[...

C语言:输入一个正整数n(1 <n≤10),再输入n 个整数
b=a[0];c=a[n-1];应该写在赋值之后,就是写在我之前帮你修改的之后 & 帮你在原来的基础上改好了 \/ include<stdio.h> int main(void){ int index1,index2,b,c,i,n,a[10];\/\/添加了 printf("请输入一个1到10的正整数:");scanf("%d",&n);index1=0;index2=n-1;for(i=0;...