int main()
{
int i = 0;
int count = 0;
for (i = 1; i <= 100; i++)
{
int j = 0;
for (j = 2; j <= i; j++)
{
if (i%j == 0)
{
break;
}
}
if (i == j)
{
count++;
printf("%d ", i);
}
}
printf("\ncount=%d\n", count);
return 0;
}
第二種方法使用了SQRT函數,也就是平方根,這裏的平方根是整數。眾所周知,非素數可以寫成除了1和它本身相乘的a*b方式,而a、b之間必有壹個小於等於ab之積的開平方根;如果這個非素數能夠被a整除,則相應的肯定會被b整除。這種方法用1到100之間的數字除以2到它的開平方根(如果該數的平方根是整數則可以除到),在此之間如果出現整除現象,則該數不是素數;如果沒有出現整除現象,則該數是素數。顯而易見,這種方法比第壹種方法要簡便,運行的次數少#include<stdio.h>
#include<math.h>
int main()
{
int i=0;
int count=0;
for(i=1;i<=100;i++)
{
int j=0;
for(j=2;j<=sqrt(i);j++)
{
if(i%j==0)
{
break;
}
}
if(j>sqrt(i))
{
count++;
printf("%d ",i);
}
}
printf("\ncount=%d\n",count);
return 0;
}