如何将用户输入的数字的素数相乘并用C语言显示



所以我开始为Uni学习C语言,并一直坚持这个练习,我找到了一种方法来计算一个数字的素数,但我不知道如何乘以素数并显示它们。

int main()
{
int number;
int prime;
int i,j;


printf("Insert number:");
scanf("%d", &number);

printf("Prime numbers of %d are: ",number);

for(i = 2; i <= number; i++)
{
prime = 1;
for(j = 2; j <= i/2; j++)
{
if(i % j == 0)
{
prime = 0;
}
}
if(prime == 1)
{
printf(" %d", i);
}
}

return 0;
}

您需要再引入一个变量来存储素数的多重化。

这是一个示范节目。

#include <stdio.h>
int main( void )
{
unsigned int number;
printf( "Insert number (0 - exit ): " );
if ( scanf( "%u", &number ) == 1 && number != 0 )
{
if ( number < 2 )
{
printf( "There are no prime numbers in the range [0, %u].n", number );
}
else
{
unsigned long long product = 2;

printf( "Prime numbers in the range [0, %u] are: ", number );
printf( "%u ", 2 );
for ( unsigned int i = 3; i <= number; i += 2 )
{
int prime = 1;
for( unsigned int j = 3; prime && j <= i / j; j += 2 )
{
if ( i % j == 0 )
{
prime = 0;
}
}
if ( prime )
{
printf( "%d ", i );
product *= i;
}
}
printf( "nTheir multiplication is equal to %llun", product );   
}
}
}

它的输出可能看起来像

Insert number (0 - exit ): 10
Prime numbers in the range [0, 10] are: 2 3 5 7 
Their multiplication is equal to 210

最新更新