第一小題:
#include <stdio.h>
#include <stdlib.h>
//第六題,第一小題,求反序數
int reverse(int);
int main()
{
int m,n;
scanf("%d", &m);
n=reverse(m);
printf("%d\n", n);
return 0;
}
int reverse(int x) //函數只管求值,不管輸出。輸出由main函數完成
{
int y=0;
while(x!=0)
{
y=x%10+y*10;
x=x/10;
}
return y;
}
第二小題:
#include <stdio.h>
#include <stdlib.h>
//第六題,第二小題,判斷迴文數
int reverse(int);
int isPalindrome(int);
int main()
{
int m;
scanf("%d", &m);
if(isPalindrome(m))
printf("%d是迴文數,噢耶!\n", m);
else
printf("%d不是迴文數。迴文有什麼好!\n", m);
return 0;
}
int reverse(int x) //函數只管求值,不管輸出。輸出由main函數完成
{
int y=0;
while(x!=0)
{
y=x%10+y*10;
x=x/10;
}
return y;
}
int isPalindrome(int n) //在這個函數中只管判斷,不能出現printf語句!
{
int m;
int r;
m=reverse(n);
if(m==n)
r=1;
else
r=0;
return r;
}
第三題:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//第六題,第三小題,判斷素數
//int reverse(int);
//int isPalindrome(int);
int isPrimer(int);
int main()
{
int num;
scanf("%d",&num);
if(isPrimer(num))
printf("%d是素數",num);
else
printf("%d不是素數",num);
return 0;
}
int isPrimer(int n) //在這個函數中只管判斷,不能出現printf語句!
{
int i;
int r=1;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
r=0;
break;
}
}
return r;
}
第四題:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//第六題,第四小題
int reverse(int);
int isPalindrome(int);
int isPrimer(int);
int main()
{
int num,num_anti;
printf("1000以內的素數如下:\n");
for(num=1;num<=1000;num++)
{
if(isPrimer(num))
{
printf("%d ",num);
}
}
printf("\n");
printf("1000以內的迴文數如下:\n");
for(num=1;num<=1000;num++)
{
if(isPalindrome(num))
{
printf("%d ",num);
}
}
printf("\n");
printf("1000以內的迴文素數如下:\n");
for(num=1;num<=1000;num++)
{
if(isPrimer(num)&&isPalindrome(num))
{
printf("%d ",num);
}
}
printf("\n");
printf("10000以內的可逆素數如下:\n");
for(num=1;num<=10000;num++)
{
num_anti=reverse(num);
if(isPrimer(num)&&isPrimer(num_anti))
printf("%d ",num);
}
return 0;
}
int isPrimer(int n) //在這個函數中只管判斷,不能出現printf語句!
{
int i;
int r=1;
if(n==1)
r=1;
else
{
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
r=0;
break;
}
}
}
return r;
}
int reverse(int x) //函數只管求值,不管輸出。輸出由main函數完成
{
int y=0;
while(x!=0)
{
y=x%10+y*10;
x=x/10;
}
return y;
}
int isPalindrome(int n) //在這個函數中只管判斷,不能出現printf語句!
{
int m;
int r;
m=reverse(n);
if(m==n)
r=1;
else
r=0;
return r;
}