[英]Decimal Prime Number to Binary
我尝试将十进制素数转换为二进制格式...我有2个不同的工作代码块,但我不知道如何与它们集成。
这是我的素数代码:
#include <stdio.h>
#include <math.h>
int main(){
int num, sr, num2;
int isPrime = 1;
printf("Prime\t | Binary\n");
printf("============================\n");
for(num=2; num<=100; num++){
sr = (int) sqrt(num);
for(num2=2; num2 <= sr; num2++){
//num2 <== sr to stop the innner loop
if(num%num2 == 0){
isPrime = 0;
break;
}
}
if(isPrime){
printf("%d\t |\n", num);
isPrime = 1;
}else{
isPrime = 1;
}
}
return 0;
}
这是十进制到二进制:
int decimalNumber,remainder,quotient;
int binaryNumber[100],i=1,j;
while(quotient!=0){
binaryNumber[i++]= quotient % 2;
quotient = quotient / 2;
}
for(j = i -1 ;j> 0;j--)
printf("%d",binaryNumber[j]);
我想要的是:
Prime | Binary
=====================
2 | 10
3 | 11
...
您基本上可以只复制代码并将其粘贴到正确的位置(稍有更改或2)。
... if(isPrime){ int quotient = num; int binaryNumber[100],i=1,j; printf("%d\t |", num); while(quotient!=0){ binaryNumber[i++]= quotient % 2; quotient = quotient / 2; } for(j = i -1 ;j> 0;j--) printf("%d",binaryNumber[j]); printf("\n"); isPrime = 1; } ...
测试 。
但是功能可能更好。 它看起来像:
void printBinary(int decimalNumber)
{
int quotient = decimalNumber;
int binaryNumber[100],i=1,j;
while(quotient!=0){
binaryNumber[i++]= quotient % 2;
quotient = quotient / 2;
}
for(j = i -1 ;j> 0;j--)
printf("%d",binaryNumber[j]);
}
你会用它来称呼它
printBinary(num);
测试 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.