找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4079|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

c語(yǔ)言 (perfect number)既循環(huán)又判斷的程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:72519 發(fā)表于 2015-1-22 02:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
//好記性不如爛筆頭,把腦子里想的落實(shí)到字面上來(lái),有助于邏輯的推進(jìn)
//這個(gè)程序難在輸出因子那里,一次性全部因子搞出來(lái)

//find perfect number
//首先求出一個(gè)數(shù)的所有因子
//有for(i=1;i<=1000;i++)
//有if(i==(.+.+.+....))
//是因子就得被整除
//可以先降低難度只判斷某個(gè)數(shù)是不是完數(shù)
//首先判斷是不是因子,如果是就累加,接下來(lái)就是見證奇跡的時(shí)刻
#include<stdio.h>
void main()
{
//首先得輸入一個(gè)整數(shù)吧,然后還有因子的和
        int i,sum=0,j;
        //printf("please input an integer:\n");
//        scanf("%d",&i);
        //從1開始判斷,用j當(dāng)做待判斷數(shù)
        for(i=1;i<=1000;i++)
        {
           for(j=1;j<i;j++)
           {
            if(i%j==0)
                sum=sum+j;
           }
           if(i==sum)
           {        printf("%d its facters are ",i);
           //我的想法是到這里以后既然i是完數(shù)了,那么現(xiàn)在再來(lái)一次,把他的因子列出來(lái)不就行了
           for(j=1;j<i;j++)
           {
            if(i%j==0)
           printf("%d,",j);
           }
           printf("\n");
           }
           sum=0;//這個(gè)累加數(shù)在循環(huán)后要清零,這個(gè)很常用
        }
//判斷的任務(wù)完成后就是for(i=1;i<=1000;i++)
}
//這是一個(gè)既循環(huán)又判斷的程序

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表