首页 > 解决方案 > 在c中生成随机素数的程序?

问题描述

#include<stdio.h>
#include<stdlib.h>
int is_prime(int num)
{
    if (num <= 1) return num;
    if (num % 2 == 0 && num > 2) return num;
    for(int i = 3; i < num / 2; i+= 2)
    {
        if (num % i == 0)
            return num;
    }
    return 0;
}
void main()
{
    while(1)
    {
        int r = rand();
        if(r==is_prime(r))
        {
            printf("The number is %d",r);
            break;
        }
    }
}

我试过这段代码来生成一个随机素数。但它每次都给出相同的数字,而且这个数字不是素数。这个程序有什么错误?

标签: c

解决方案


推荐阅读