c语言编程 求输出素数

img

c语言程序设计题目,如图所示(*σ´∀`)σヾ(´∀`。ヾ)(。>∀<。)

你题目的解答代码如下:

#include <stdio.h>
int isprime(int n)
{
    int i;
    if (n < 2)
        return 0;
    for (i = 2; i < n; i++)
        if (n % i == 0)
            return 0;
    return 1;
}

int main()
{
    int i, c = 0;
    for (i = 1; i <= 100; i++)
    {
        if (isprime(i))
        {
            printf("%d ", i);
            if ((++c) % 5 == 0)
                printf("\n");
        }
    }
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

#include <stdio.h>
int main()
{
int x=2;
int cnt = 0;
while(cnt<50)
{
int i;
int isPrime = 1;
for (i = 2; i < x; i++)
{
if (x%i == 0)
{
isPrime = 0;
break;
}
}
if (isPrime == 1)
{
printf("%d\t", x);
cnt++;
if(cnt%5==0)//如果是每行是5个,则换成下一行
printf("\n");
}
x++;
}
printf("\n");
return 0;
}


#include <stdio.h>
int isprime(int n)
{
    int i;
    if (n == 1)
        return 0;
    if(n==2)
        return 1;
    if(n%2==0)
        return 0;
    for (i = 3; i < n; i+=2)
        if (n % i == 0)
            return 0;
    return 1;
}
 
int main()
{
    int i, count = 0;
    for (i = 1; i <= 100; i++)
    {
        if (isprime(i))
        {
            printf("%d ", i);
            count++;
            if (count% 5 == 0)
                printf("\n");
        }
    }
    return 0;
}

对质数判断作了改良:

#include <stdio.h>
int isprime(int n)
{
    int i;
    if (n < 4) return n>1;
    if (n%2==0 || n%3==0) return 0;
    for (i = 4; i*i <= n; i++)
        if (n % i == 0)
            return 0;
    return 1;
}
 
int main()
{
    int i, cnt = 0;
    for (i = 1; i <= 100; i++){
        if (isprime(i)){
            printf("%d ", i);
            if ((++cnt) % 5 == 0)
                printf("\n");
        }
    }
    return 0;
}

解答如下

img

#include <stdio.h>
int Isprime(int n)
{
    if(n<2) return 0;
    for(int i=2;i*i<=n;i++)
        if(n%i==0) return 0;
    return 1;
}
int main()
{
    int count=0;
    for(int i=1;i<=100;i++)
    if(Isprime(i))
    {
        printf("%d ",i);
        if(++count%5==0) printf("\n");
    }
    return 0;
}

素数 最基础的能否整除的循环判断条件是
循环到 n/2 或者sqrt(n)
题主眼睛擦亮些



#include <stdio.h>
int isprime(int n)     //判断是否是素数的函数
{
    int i;
    if (n < 2)
        return 0;
    for (i = 2; i < n; i++)   //从2开始,是否被数整除
        if (n % i == 0)
            return 0;
    return 1;
}
 
int main()
{
    int i, c = 0;
    for (i = 1; i <= 100; i++)
    {
        if (isprime(i))   //循环每一个数,判断
        {
            printf("%d ", i);
            if ((++c) % 5 == 0)  //输出格式
                printf("\n");
        }
    }
    return 0;
}
 
#include <stdio.h>
int isprime(int n)
{
    int i;
    if (n == 1)
        return 0;
    if(n==2)
        return 1;
    if(n%2==0)
        return 0;
    for (i = 3; i < n; i+=2)
        if (n % i == 0)
            return 0;
    return 1;
}
 
int main()
{
    int i, count = 0;
    for (i = 1; i <= 100; i++)
    {
        if (isprime(i))
        {
            printf("%d ", i);
            count++;
            if (count% 5 == 0)
                printf("\n");
        }
    }
    return 0;
}