编程-c语言求完全数问题求助~~

问题描述

c语言求完全数问题求助~~
找完全数
成绩: 10 / 折扣: 0.8
完全数是其各因子之和正好等于本身的数,如6=1+2+3,28=1+2+4+7+14所以6,8都是完全数,请编程找出2-20000内的所有完全数.输入整数n,输出第n个完全平方数。

 #include<stdio.h>int main(){    int aij=0s=0nb[4];    scanf(""%d""&n);    for(a=2;a<=20000;a++)    {        for(i=1s=0;i<a;i++)        {            if(a%i==0) s=s+i;        }        if(s==a) {b[j]=a;j++;}    }    printf(""%d
""b[--n]);    return 0;}

请问这个程序有啥错误,vc上运行结果正确,但是提交到学校平台上显示无结果,超出时间限制。

解决方案

 #include<stdio.h>#include<time.h>int main(){    clock_t t_st_e;    int aij=0s=0nb[4];    scanf(""%d""&n);    t_s = clock();    for(a=2;a<=20000;a++)    {        for(i=1s=0;i<a;i++)        {            if(a%i==0) s=s+i;        }        if(s==a) {b[j]=a;j++;}    }    t_e = clock();    double t = (t_e-t_s)/CLOCKS_PER_SEC;    printf(""%d
""b[--n]);    printf(""Time used:%fs
""t);    return 0;}

我用上面的代码测试了程序运行时间,没什么问题啊~
你那个学校平台是怎么个情况?程序在我看来没什么大问题(可以再省略一部分循环次数的)。

解决方案二:
1.
20000以内只有4个完全平方数。但是事先不知道。
所以数组b设大一点: b[10]

2.万一输入5你的程序就出错了。要加个判断:

    if(n<=j) printf(""%d
""b[--n]);    else printf(""未找到。"");

解决方案三:
超出时间限制,如果有这问题的话,应该是你的程序运行时间太久了,
在判断的时候,

 for(i=1s=0;i<=a/2;i++)        {            if(a%i==0) s=s+i;        }

你试试

解决方案四:
c语言 完全数

时间: 2024-09-12 16:32:33

编程-c语言求完全数问题求助~~的相关文章

编程c语言-求指导c语言编程问题。

问题描述 求指导c语言编程问题. 求大神c语言题目是提取字母 如输入 2 abc1abc abc@@abc 输出 abc abc abc abc 我现在就是输出后面有很多烫字加上也没用,求教 #include #include void fun(char *a) { int i,j,k=0,m=0; char b[100][100]; for(i=0;a[i]!='';i++) { if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&am

编程c语言-求一个把bmp图像灰度化并把灰度化后的像素存入数组里的C语言函数,不用opencv

问题描述 求一个把bmp图像灰度化并把灰度化后的像素存入数组里的C语言函数,不用opencv 求一个把bmp图像灰度化并把灰度化后的像素存入数组里的C语言函数,不用opencv 解决方案 顶顶顶顶顶顶顶顶顶顶

编程c语言-求用C++或者C编程的流程图

问题描述 求用C++或者C编程的流程图 问: 一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859.两小时后里程表上出现了一个新的对称数.问该车的速度是多少?新的对称数是多少?用C或者C++编程的流程图 解决方案 int i = 95859; while (true) { i++; char str[10]; itoa(number,str,10); bool b = true; for (int j = 0; j

编程c语言-求c++编写学生成绩管理系统

问题描述 求c++编写学生成绩管理系统 求c++编写学生成绩管理系统,要求可以增加,删除,修改查询,,功能 解决方案 http://www.doc88.com/p-698583418612.html 解决方案二: http://blog.csdn.net/sdliujiangbo/article/details/7693269http://wenku.baidu.com/link?url=CjxxWkRyzIFRCDHKjZnbxsv6O3GrmOb15SBHLP1ccXEdmuc7A6Ou05

编程c语言-求二叉树问题的C程序代码

问题描述 求二叉树问题的C程序代码 //从终端输入一个整数序列,构建一棵允许具有重复结点的二叉排序树(左子树元素小,右子树不小): //(1) 使用依次插入元素的方法(InsertBST)构建二叉排序树: //(2) 分别写出二叉树的前序.中序.后序遍历递归算法: //(3) 写出前序遍历序列的非递归算法(使用以前写好的堆栈代码): //(4) 使用递归算法求该二叉树中叶子结点和非叶子结点的个数: //(5) 使用递归算法求该二叉树的高度: //(6) 层次遍历该二叉树(使用以前写好的队列代码)

算法-求助大神:c语言求最长公共子序列问题

问题描述 求助大神:c语言求最长公共子序列问题 我写的这个能正确求出最长序列元素个数但是输出的最长序列却是乱码,求大神指教.代码如下: #include #include #include #define MAX 101 int Long(char a[],char b[],char result[] ) { int m,n; m=strlen(a); n=strlen(b); int str[MAX][MAX]; int i,j,sum; for(i=0;i<=m;i++) { str[i][

c语言-C语言素数的编程问题,求大家解答

问题描述 C语言素数的编程问题,求大家解答 这些代码编译没有问题,我测试了几个数也没有问题,为什么放到AMC的OJ系统一直说答案错误? 求大家看看 谢谢了! 问题要求是输入整数,判断素数 如果是就输出1,不是就输出0 #include int main() { int a,i,find; scanf("%d",&a); if(a<=1) { find=0; printf("%d",find); return 0; } for(i=2;i<a;i+

c语言-汉诺塔C语言编程问题,求帮忙

问题描述 汉诺塔C语言编程问题,求帮忙 Description 大家都听说过汉诺塔吧?有n个圆盘由小到大排列,套在a柱上,每次只能移动一个圆盘,而且只能大的在下,小的在上,让你把a柱上的圆盘移到b柱,给你一个多余的c柱,问你最少移动多少次才能完成任务. Input 输入有多组数据,每组包括一个整数n(n<=10000000),表示初始状态下有n个圆盘,当输入的n为0时,程序结束,n为负的情况不作处理. Output 对每个输入,对应一行输出,每行输出包括一个整数,即移动的最小次数,因为数目非常大

acm的c语言扫雷编程题目,求大神指点

问题描述 acm的c语言扫雷编程题目,求大神指点 解决方案 这是输出的部分,待会附上我的代码 解决方案二: 你是要找人代写,还是说代码需要debug? 解决方案三: 这是哪个acm平台呀,这个算法应该就是算临域,完后计数加加的吧 解决方案四: 问题出在最后和标准差个空格 #include #include #include int main(){ int c,b,i,j; int x=1; char a[1000][1000]; while(scanf("%d%d",&c,&a