开始时这样的:# include<studio.h>
int main()
{
int i,m,k,s=0;
要用到for循环,核心思想是拿每一个数处以比他小的数,知道sqrt(m),也就是k
第1个回答 推荐于2016-05-17
#include <stdio.h>
int is_prime(int x)
{
int i;
for(i = 2; i < x; i++) if(x%i == 0) return 0;
return x;
}
int main(void)
{
int x = 0, y = 0;
for(x = 100; x < 300; x++) y += is_prime(x);
printf("\n%d\n", y);
return 0;
}
/*运行的结果是7215*/本回答被提问者采纳
int is_prime(int x)
{
int i;
for(i = 2; i < x; i++) if(x%i == 0) return 0;
return x;
}
int main(void)
{
int x = 0, y = 0;
for(x = 100; x < 300; x++) y += is_prime(x);
printf("\n%d\n", y);
return 0;
}
/*运行的结果是7215*/本回答被提问者采纳
第2个回答 2010-11-04
#include <stdio.h>
int is_prime(int x)
{
int i;
for(i = 2; i < x / 2; i++) // 除数的范围只需要2到x/2
{
if(x%i == 0)
{
return 0; // 若x被i整除,即x不是素数,则返回0
}
}
return x; // 若x是素数,则返回x本身
}
int main(void)
{
int x = 0, y = 0;
for(x = 100; x < 300; x++)
{
y += is_prime(x);
}
printf("\n%d\n", y);
return 0;
}
/*运行的结果是7215*/
int is_prime(int x)
{
int i;
for(i = 2; i < x / 2; i++) // 除数的范围只需要2到x/2
{
if(x%i == 0)
{
return 0; // 若x被i整除,即x不是素数,则返回0
}
}
return x; // 若x是素数,则返回x本身
}
int main(void)
{
int x = 0, y = 0;
for(x = 100; x < 300; x++)
{
y += is_prime(x);
}
printf("\n%d\n", y);
return 0;
}
/*运行的结果是7215*/