| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:求素数问题想不通
只看楼主 加入收藏
chump345
Rank: 1
来 自:家里蹲大学
等 级:新手上路
帖 子:108
专家分:5
注 册:2007-11-24
结帖率:93.33%
收藏
 问题点数:0 回复次数:6 
求素数问题想不通
#include<stdio.h>
#include<conio.h>
void main()
{
  int a,i,k,j,leap=0;
  printf("input the number:\n");
  while(1)
  {
  scanf("%d",&a);
  if(a>3)break;
  }

  for(i=3;i<a;i++)
    {for(j=2;j<i;j++)
      if(!(i%j))break;
     leap=1;
      if(!leap)
      {
        printf("%d ",i);
        leap=0;
       }
       }
 getch(); }
红字部分用什么方法可以实现   当满足条件时退出本次循环,直接进入外面那个FOE循环,
                                                 不满足条件时,直到里面的循环结束,执行下面的语句
我头都快想爆了,不得己,拿上面问问大家~
搜索更多相关主题的帖子: 素数 
2007-12-05 22:01
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
if(!(i%j))break;       [color=blue]/* 即 [bold] if[/bold](i % j == 0) [bold]break[/bold]; */
     leap=1;[/color]

—>〉Sun〈<—
2007-12-05 22:12
chump345
Rank: 1
来 自:家里蹲大学
等 级:新手上路
帖 子:108
专家分:5
注 册:2007-11-24
收藏
得分:0 
恩~刚刚想明白了~在leap=1;前面加个if(i==j)就可以了,可以结贴了~
不晓得还有没有更好的办法,~

凤凰涅磐,浴火重生!

2007-12-05 22:16
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
/* 2 也是素数 */
#include <stdio.h>
#include <conio.h>

[bold]int[/bold] main([bold]void[/bold])
{
    [bold]int[/bold] a, i;
    printf("input the number: ");
   
    [bold]while[/bold](scanf("%d",&a) != 1 || a < 0)
    {
        [bold]while[/bold](getchar() != '\n');
        printf("input the number(> 0): ");
    }


    [bold]for[/bold](i = 2; i < a; i++)
        [bold]if[/bold](a % i == 0)
            [bold]break[/bold];
    [bold]if[/bold](i == a)
        printf("%d是素数\n",i);


    puts("Bye!");
    getch();
    [bold]return[/bold] 0;
}

—>〉Sun〈<—
2007-12-05 22:23
cyutao8405
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-12-3
收藏
得分:0 
#include <stdio.h>
int sushu(int b)
{
    int a,ss,c=1;
    for(a=2;a<b;a++)
    {
        ss=b%a;
        if(ss==0)
        {
            c=0;
        break;
        }
        
    }
    return c;
}
void main()
{
    int x,y;
    printf("请输入任意一数\n");
    scanf("%d",&x);
    y=sushu(x);
    if(y)
        printf("这是素数\n");
    else
        printf("这不是素数\n");
}
2007-12-05 22:25
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
原帖由 [bold][underline]chump345[/underline][/bold] 于 2007-12-5 22:16 发表 [url=http://bbs.][/url]
恩~刚刚想明白了~在leap=1;前面加个if(i==j)就可以了,可以结贴了~
不晓得还有没有更好的办法,~


#include <math.h>
int prime(int x)     /* 如果 x 是素数函数返回1,否则返回 0 */
{
    int i;
    double k;
    k = sqrt(x);        /* x 开平方 */
    for (i = 2; i <= k; i++)
        if(x % i == 0)
            break;
    if(i > k)
        return 1;
    else
        return 0;
}

—>〉Sun〈<—
2007-12-05 22:26
chump345
Rank: 1
来 自:家里蹲大学
等 级:新手上路
帖 子:108
专家分:5
注 册:2007-11-24
收藏
得分:0 
6楼的大哥~
是把自定义的函数的返回值放在主函数的IF语句就可以了么~

凤凰涅磐,浴火重生!

2007-12-06 14:11
快速回复:求素数问题想不通
数据加载中...
 
   



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

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