二进制转化为十进制算法如何实现?(数组存放二进制数)十进制数如何判断是否为一个素数?

二进制数转化为十进制算法如何实现?(数组存放二进制数)十进制数如何判断是否为一个素数?

#include <stdio.h>
int main()
{
int n = 0,i;
int a[8] = {1,0,1,1,0,1,1,0};
for(i=0;i<8;i++)
    n = n * 2 + a[i];
printf("%d",n);
}
#include <stdio.h>
int main()
{
    int n,i=0;
    scanf("%d",&n);
    if(n<=1)
        printf("%d不是素数",n);
    else
    {
    for(i=2;i<n;i++)
        if(n%i==0)
            break;
    if(i<n)
        printf("%d不是素数",n);
    else
        printf("%d是素数",n);
    }
}

该回答引用ChatGPT
将一个二进制数转化为十进制数的算法,可以使用如下的方式:

初始化十进制数为0。
从二进制数的最低位(即数组的最后一位)开始,逐位遍历该二进制数。
对于每一位,将它乘以2的n次方(其中n是该位在二进制数中的位数),并将结果加到十进制数中。
重复步骤2和3,直到遍历完整个二进制数。
以下是一个示例代码:

int[] binary = {1, 0, 1, 1}; // 二进制数 1011
int decimalNumber = 0;

for (int i = binary.Length - 1; i >= 0; i--)
{
    decimalNumber += binary[i] * (int)Math.Pow(2, binary.Length - 1 - i);
}

Console.WriteLine(decimalNumber); // 输出 11


判断一个十进制数是否为素数的算法,可以使用如下的方式:

如果该数小于2,则它不是素数。
如果该数可以被2整除,则它不是素数。
对于大于2的数,从2到它的平方根之间的每个数,判断是否能整除该数。
如果存在一个数能整除该数,则它不是素数;否则,它是素数。
以下是一个示例代码:

int number = 17;
bool isPrime = true;

if (number < 2)
{
    isPrime = false;
}
else if (number == 2)
{
    isPrime = true;
}
else if (number % 2 == 0)
{
    isPrime = false;
}
else
{
    for (int i = 3; i <= Math.Sqrt(number); i += 2)
    {
        if (number % i == 0)
        {
            isPrime = false;
            break;
        }
    }
}

if (isPrime)
{
    Console.WriteLine(number + " is a prime number.");
}
else
{
    Console.WriteLine(number + " is not a prime number.");
}