1. 程式人生 > 實用技巧 >統計10個整數中奇數、偶數、素數和完數的個數

統計10個整數中奇數、偶數、素數和完數的個數

統計10個整數中奇數、偶數、素數和完數的個數

問題:

統計10個整數中奇數、偶數、素數和完數的個數

程式…………………………………………

#include<stdio.h>
#include<math.h>  //sqrt
int main() 
{<!-- -->
    int a[10];    // 0 1 2 3 -6 -12 13 7 28 496
    int i,j,k=1;
    int sum=0,js=0,os=0,ss=0,ws=0;
    printf("原資料:");
    for(i=0;i<10;i++)
        scanf("%d",&a[i]); 
    printf("\n"); 
    for(i=0;i<10;i++)
        if(a[i]<0)
            a[i]=-a[i];     //使負數變成正數
    for(i=0;i<10;i++)
    {<!-- -->  
        if(a[i]%2==0)
            os++;           //【偶數】
        if(a[i]%2==1)             //也可直接用 else 
            js++;           //【奇數】 
        if(a[i]>1)
        {<!-- -->
            k=1;            //注意:即使在開頭有k=1,但此if語句中也必須有 
            for(j=2;j<=sqrt(a[i]);j++)   //  <=
            {<!-- -->  
                 if((a[i])%j==0)
                 {<!-- -->
                     k=0;
                     break;
                 }
             }
             if(k!=0)     //可換成 if(k)
                 ss++;    //【素數】
         }
         if(a[i]>1)
         {<!-- -->
             sum=0;
             for(j=1;j<a[i];j++)
             {<!-- -->
                 if(a[i]%j==0)
                 sum+=j;
              }
             if(sum==a[i])
             {<!-- -->
                ws++;       //【完數】
                printf("%d是完數\n",a[i]);
             }
        }
    }
    printf("奇數個數:%d\n",js);
    printf("偶數個數:%d\n",os);
    printf("素數個數:%d\n",ss);
    printf("完數個數:%d\n",ws);
    getchar();
    return 0;
 }

執行結果………………………………
其它有關文章:

素數(判斷,統計,範圍輸出)
完數 (判斷一個完數、求範圍內完數)