现在的位置: 首页 > 04 循环结构 > 正文

break提前终止循环(n以内的素数)

2014年01月05日 04 循环结构 ⁄ 共 199字 ⁄ 字号 break提前终止循环(n以内的素数)已关闭评论

素数指在大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数)。比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着非常重要的地位。

问题:输出1~n之间的所有素数,每行一个。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main(int argc, char *argv[])
{
    int i,j, flag;
    i=49;
    flag=1;  // 先假定i是素数
    for (j=2; j<i; j++) 
        if (i%j==0) {
            flag=0;  // 如果 i 能够被 j 整除,就不是素数
            break;   // 找到一个就可以结束循环了
        }
    if (flag==1) printf("%d\n", i);  // 如果是素数,则输出
    return 0;
}

你可以将 i 改成 41,看看输出是什么?

如果i从2遍历到n,就可以输出所有的素数了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
int main(int argc, char *argv[])
{
    int i,j,flag,n;
    scanf("%d", &n);
    for (i=2; i<=n; i++) {
        flag=1;
        for (j=2; j<i; j++)
            if (i%j==0) {
                flag=0;
                break;
            }
        if (flag==1) printf("%d\n", i);
    }
 
    return 0;
}

抱歉!评论已关闭.