问题描述
(4)编制main函数,调用上面定义的3个函数,完成
输出1000以内的所有素数。输出1000以内的所有回文数。输出1000以内的所有回文素数。若一个素数的反序数仍为素数,则称它为可逆素数。求10000以内的所有可逆素数。程序代码
#include <stdio.h> #include <math.h> #define num 1000 /* *csdn学院--2016级 *目的:让代码见证成长(作为一个初学的菜鸟,如 *大家有发现错误,欢迎指正!) *文件名称:Myfun118.c *作者:小臣小仁 *完成日期:2017年3月8日 */ int isPalindrome(int);//回文数 int isPrimer(int);//素数 int reverse(int);//可逆素数 int main() { int i; printf("%d内的回文数如下:\n",num); for(i=2;i<=num;i++) { if(isPalindrome(i)) printf("%d\t",i); } printf("\n"); printf("%d内的素数如下:\n",num); for(i=2;i<num;i++) { if(isPrimer(i)) printf("%d\t",i); } printf("\n"); printf("%d内的回文素数为:\n",num); for(i=2;i<=num;i++) { if(isPrimer(i)&&isPalindrome(i)) printf("%d\t",i); } printf("\n"); printf("%d内以内的可逆素数如下:\n",num*10); for(i=2;i<=num*10;i++) { if(isPrimer(reverse(i))&&isPrimer(i)) printf("%d\t",i); } return 0; } int reverse(int num3) { int sum=0; while(num3>0) { sum=sum*10+num3; num3=num3/10; } return(sum); } int isPalindrome(int num1) { int Palindrome=0; if(reverse(num1)==num1) Palindrome=1; return(Palindrome); } int isPrimer(int num2) { int i,j; int Primer=1; j=(int)(sqrt(num2)); for(i=2;i<j;i++) { if(num2%i==0) { Primer=0; break; } } return (Primer); }知识点总结
通过编写回文数函数,素数函数,可逆素数函数,在函数里面调用依次实现。
心得体会
作为一个大二菜鸟,慢慢了解了C语言了,虽然后面的路还很长,但还是蛮高兴的