判断101-1000之间有多少个素数,并输出所有素数。
判断素数的方法:
1. 从2到n-1每个数均整除判断
2.开根号法:从2到n均整除判断:素数是因子为1和本身, 如果数c不是素数,则还有其他因子,其中的因子,假如为a,b.其中必有一个大于sqrt(c) ,一个小于sqrt(c) 。所以m必有一个小于或等于其平方根的因数,那么验证素数时就只需要验证到其平方根就可以了。即一个合数一定含有小于它平方根的质因子。
#include<stdio.h>
#include<math.h>
int main()
{
int m,i,k,h=0,leap=1;
for(m=101;m<=1000;m++)
{
k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{
leap=0;
break;
}
if(leap)
{
printf("%-4d",m);
h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\n素数的数量是 %d",h);
return 0;
}
输出
101 103 107 109 113 127 131 137 139 149
151 157 163 167 173 179 181 191 193 197
199 211 223 227 229 233 239 241 251 257
263 269 271 277 281 283 293 307 311 313
317 331 337 347 349 353 359 367 373 379
383 389 397 401 409 419 421 431 433 439
443 449 457 461 463 467 479 487 491 499
503 509 521 523 541 547 557 563 569 571
577 587 593 599 601 607 613 617 619 631
641 643 647 653 659 661 673 677 683 691
701 709 719 727 733 739 743 751 757 761
769 773 787 797 809 811 821 823 827 829
839 853 857 859 863 877 881 883 887 907
911 919 929 937 941 947 953 967 971 977
983 991 997
素数的数量是143
--------------------------------