输出10至50之间的全部素数

问题描述:输出10到50之间的全部素数
输入形式:无
输出形式:各素数之间用一个空格隔开
样例输入:无
样例输出:11 13 17 19 23


#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
bool isPrime(int n)
{
    int i;
    if (n == 1)
    {
        return false;
    }
    for ( i = 2; i <= n; i++)
    {
        if (n % i == 0)
        {
            break;
        }
    }
    if (i == n)
    {
        return true;
    }
    else
        return false;
}
int main(void)
{
    printf("10到50之间的全部素数为:\n");
    for (int i = 10; i <= 50; i++)
    {
        if (isPrime(i))
        {
            printf("%5d", i);
        }
    }
}


#include<stdio.h>
#include<math.h>
int main()
{
    int n;
    int i;
    int flag=0;
    for(n=10;n<=50;n++)
    {
        flag=0;
        for(i=2;i<=sqrt(n);i++)
        {
            if(n%i==0)
                {
                    flag=1;
                    break;
                }
        }
        if(flag==0)
            printf("%d ",n);
    }
 
    return 0;
}

循环到开方n或者n/2都可以 反正不要写到n

望采纳

img

#include <stdio.h>
#include <math.h>
int  main(){
    int i=11,j,counter=0;
    for(;i<=50;i+=2){ //外层循环为内层循环提供一个奇数
        for(j=2;j<=i-1;j++){ //内存循环判断奇数是否为素数
            if(i%j==0){ //若i不是素数则强行结束内存循环,若i是素数则输出,计数器+1
                break;
            }
        }
        if(j>=i){
                printf("%6d",i);
                counter++;
                if(counter%10==0){
                    printf("\n"); // 每输出10个素数,则换一行
            }
        }

    }

}