[英]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.