| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2406 人关注过本帖
标题:求助!判断素数问题
只看楼主 加入收藏
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
收藏
 问题点数:0 回复次数:17 
求助!判断素数问题
/*判断100~200间的素数*/
#include "stdio.h"
#include "math.h"
void main()
{
int i,number;
for(number=100;number<=200;number++)
 {
  for(i=2;i<=sqrt(number);i++)
   {if(number%i==0)
     printf("%d不是素数\n",number);break;
 
   }
  printf("%d是素数\n",number);
 }
getch();
}
运行后感觉有点问题,请问该怎样修改?
搜索更多相关主题的帖子: 素数 number 判断 include 
2008-04-17 13:43
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
printf("%d是素数\n",number);//不论是什么数,只要是数,就打印。

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-04-17 13:55
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
你可以加一个标志位来表示当前数字是否是素数,根据不同的标志位进行不同的输出,就像下面的变量te一样。
#include <stdio.h>
#include <math.h>
int main(void)
{
    int i, number, te;
    for(number = 100; number <= 200; number++)
    {
        for(i = 2; i <= sqrt(number); i++)
        {
            if(number % i == 0) {
                printf("%d不是素数\t", number);
                te = 0;
                break;
            }
            else {
                te = 1;
            }         
        }
        if (te == 1) {
            printf("%d是素数\t", number);
        }
    }
    return 0;
}

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-04-17 14:18
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
下面是偶写的,偶算法不好.
#include<stdio.h>
#include<math.h>
#include<stdlib.h>

#define SIZE 101
#define MAX 200

void print(int *num ,int N) {
   int i = 0;
   for(; i < N; i++)
      if( num[i] )
       printf("%d ",num[i] );
}
int* judge(int *num, int N) {
   int i = 0;
   int j = 2;
   for( i = 0; i< N; i++){
     for(j = 2; j < sqrt(MAX) ; j++ )
         if(num[i] != j&&num[i] % j == 0 ){
              num[i] = 0;
         break;
        }
    }
   return num;
 }

int main(void){
    int * num = (int* )malloc(SIZE*sizeof(int));
    int i = 0, j = 100;
    for( ; i < SIZE ; i++)  num[i] = j++;
    print(judge(num,SIZE),SIZE);
    free(num);
   return 0;
}

[[it] 本帖最后由 中学者 于 2008-4-17 15:14 编辑 [/it]]

樱花大战,  有爱.
2008-04-17 15:01
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
#include <stdio.h>
#include <math.h>
int main(void)
{
    int i, number, te;
    for(number = 100; number <= 200; number++)
    {
        te = (int)sqrt(number + 1); i = 0;
        if(number &amp; 1)
        for(i = 3; i <= te; i+=2)
        {
            if(number % i == 0) break;
        }
        if (i <= te)
            printf("%d不是素数\n", number);
        else
            printf("%d是素数\n", number);
    }
    return 0;
}


" border="0" />[color=white]

[[it] 本帖最后由 雨中飛燕 于 2008-4-17 15:59 编辑 [/it]]
2008-04-17 15:56
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
还是燕子牛。。。。。。

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-04-17 17:57
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
收藏
得分:0 
谢谢 楼上各位!

泾溪石险人竞慎,终岁不闻倾覆人。却是平流无石处,时时闻说有沉论。
2008-04-17 22:01
iverson817
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2008-3-13
收藏
得分:0 
回复 1# 的帖子
你定义个布尔型,初始化值为true。即假设所有的数都是素数,当出现不是的时候为false。最后当布尔型为真时,打印出·
2008-04-17 22:32
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
收藏
得分:0 
回复 1# 的帖子
有些IDE不支持中文!
2008-04-17 22:42
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
[bo]以下是引用 [un]gaoce227[/un] 在 2008-4-17 22:42 的发言:[/bo]

有些IDE不支持中文!

这不在考虑范围之内

" border="0" />
2008-04-17 22:44
快速回复:求助!判断素数问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013161 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved