問題:
統計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;
}
運行結果………………………………
其它有關文章:
素數(判斷,統計,範圍輸出)
完數 (判斷一個完數、求範圍內完數)