加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

1、求100以内的所有素数

(2013-02-28 22:34:13)
分类: 几道小题
1、提示:素数又叫质数,指只能被1和自己本身整出的自然数(1和0即非质数又非合数)

方法一: 
#include  
#include  

void main(){ 
    int number = 2; 
    int i; 
    for(number ; number<=100; number++){  //1号for循环
 for ( i=2; i<=sqrt(number); i++){  //2号for循环
      if (number%i == 0){ 
   break; 
      
 
         if (i>sqrt(number)) {  //如果2号for循环结束时,if语句从来没执行,那么i的值肯定大 于sqrt(number),所以用这个表达式来判断是否为素数
     printf("%d\n",number); 
 
     
}


方法二(笨,但却很容易理解的方法,设置标志变量flag)

#include  
#include  

void main(){ 
 int number = 2; 
 int i; 
 char flag = 0; 
 for(number ; number<=100; number++){ 
 flag = 1; 
 for ( i=2; i<=sqrt(number); i++){ 
 if (number%i == 0){ 
 flag = 0;  //用标志变量来判断for循环是否成功进入if语句
 break; 
 
 
 if (flag == 1) {
 printf("%d\n",number);
 
 
}


2、这里用到了 sqrt()函数,sqrt的全称是 squre root 即平方根,使用时别忘了引入头文件 
#include<math.h>
3、求100以内的素数,再判断某数n是否为素数时,不需要从2一直除到n,只需要从2除到sqrt(n)【注意sqrt(n)也要判断】即可

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有