首页

文章

c语言编程例题

发布网友 发布时间:2022-04-19 23:38

我来回答

4个回答

热心网友 时间:2023-09-08 00:09

#include <iostream>
#include <math.h>

using namespace std;

// 判断一个数是否为素数
bool IsPrimeNumber(int iNum)
{
bool bRtn = true;
if (iNum <= 1)
{
return false;
}
int iTmp = sqrt((double)iNum);
for (int i=2;i<=iTmp;++i)
{
if((iNum % i) == 0)
{
bRtn = false;
break;
}
}
return bRtn;
}

// 判断一个数是否为偶数
// true,偶数;false,奇数
bool IsEvenNumber(int iNum)
{
return ((iNum%2) == 0) ? true : false;
}

// 查找小于1000的回文素数
void FindPalindromePrimes(int iNum)
{
bool bRst = false;
int i = 2;
int iHundDigit = 0,iTenDigit = 0,iSingleDigit = 0;
for (i;i<1000;++i)
{
if (IsPrimeNumber(i))
{
if (i < 10)
{
bRst = true;
cout << i << " ";  // 输出回文素数.
}
else if ((i >= 10) && (i < 100))
{
iTenDigit = i/10;
iSingleDigit = i%10;
// 如果个位上的数与10位上的数相等
if (iTenDigit == iSingleDigit)   
{
bRst = true;
cout << i << " ";
}
}
else
{
int iTmp = i;
iHundDigit = iTmp/100;
iTmp = iTmp%100;
iTenDigit = iTmp/10;
iSingleDigit = iTmp%10;
if ((iHundDigit == iTenDigit) && (iTenDigit == iSingleDigit))
{
bRst = true;
cout << i << " ";
}
}
}
}
if (!bRst)
{
cout << "没有小于1000的回文素数!" << endl;
}
}

// 查找小于100的绝对素数
void FindAbsolutePrime(int iNum)
{
bool bRst = false;
int i = 2,iTmp = 0;
int iTenDigit = 0,iSingleDigit = 0;
for (i; i < 100;++i)
{
if (IsPrimeNumber(i))
{
iTenDigit = i/10;
iSingleDigit = i%10;
iTmp = iSingleDigit*10+iTenDigit;
if (IsPrimeNumber(iTmp))
{
bRst = true;
cout << i << " ";
}
}
}
if (!bRst)
{
cout << "没有小于100的绝对素数!" << endl;
}
}

// 分解10~20之间的偶数
void ResolveEventNum(int iNum)
{
bool bRst = false;
int i = 2,iTmp = 0;
for (;i<iNum;++i)
{
if (IsPrimeNumber(i))
{
iTmp = iNum - i;
if (IsPrimeNumber(iTmp))
{
bRst = true;
cout << iNum << "分解为" << i << " + " << iTmp << endl;
break;
}
}
else
continue;
}
if (!bRst)
{
cout << "不能分解为两个素数之和!" << endl;
}
}

int main(void)
{
int iInput = 0;
cout << "请输入一个大于1的整数:";
cin >> iInput;
if (IsEvenNumber(iInput))
{
cout << iInput << " 是一个偶数" << endl;
if ((iInput >= 10) && (iInput <= 20))
{
ResolveEventNum(iInput);
}
}
else
{
cout << iInput << " 是一个奇数" << endl;
cout << "查找小于1000的回文数:" << endl;
FindPalindromePrimes(iInput);
cout << endl;
cout << "查找小于100的绝对素数:" << endl;
FindAbsolutePrime(iInput);
cout << endl;
}
getchar();
return 0;
}

附上运行结果(如果满意,麻烦设为最佳答案,做任务需要,谢谢!):

热心网友 时间:2023-09-08 00:10

#include<stdio.h>
#include<math.h>
//检测是否素数
int isSs(int n)
{
int i;
if(n == 2)
{
return 1;
}
for(i = 2; i <= sqrt(n); i++)
{
if(n % i == 0) 
{
return 0; //只要能被2到√n中任何一个数整除,就说明不是素数 
}
}
return 1;
}
//检测是否为回文
int isHw(int n)
{
if(n < 10) //个位数的素数一定是回文
{
return 1; 
}
else if(n >= 10 && n < 100) //两位数
{
int sws = n/10; //十位数
int gws = n%10; //个位数
if(sws == gws)
{
return 1;
}
}
else if(n >= 100 && n < 1000)
{
int bws = n/100; //百位数 
int gws = n%100%10; //个位数
if(bws == gws)
{
return 1;
}else
{
return 0;
}
}
}
//检测是否是回文素数
int isHwss(int n)
{
if(isSs(n) && isHw(n))
{
return 1;
}else
{
return 0;
}
}
//检测是否是绝对素数
int isJdss(int n)
{
if(n < 10) //个位数的素数一定是绝对素数 
{
return 1; 
}
else if(n >= 10 && n < 100) //两位数
{
int sws = n/10; //十位数
int gws = n%10; //个位数
int new_n = gws*10 + sws; //位置对调后的新数 
if(isSs(n) && isSs(new_n))
{
return 1;
}else
{
return 0;
}
}
}
//输出1-1000的回文素数
void printHw()
{
int i;
printf("1-1000的回文素数:\n");
for(i = 2; i <= 1000; i++)
{
if(isHwss(i))
{
printf("%d ", i);
if(i%10==0)
{
printf("\n");
}
}
}
printf("\n");
}
//输出1-100的绝对素数
void printJd()
{
int i;
printf("1-100的绝对素数:\n");
for(i = 2; i < 100; i++)
{
if(isJdss(i))
{
printf("%d ", i);
if(i%10==0)
{
printf("\n");
}
}
}
printf("\n");
}
//分解偶数为两个素数之和
void divide(int n)
{
int i;
for(i = 2; i <= n/2; i++)
{
if(isSs(i) && isSs(n-i))
{
printf("%d = %d + %d\n", n, i, n-i);
break;
}
}
}
int main()
{
int n;
printf("请输入一个数:");
scanf("%d", &n);
if(n % 2) //奇数 
    {
    printHw();
    printJd();
    }else if(n >= 10 && n <= 20 && n % 2 == 0)
    {
    divide(n);
}

}

热心网友 时间:2023-09-08 00:10

能想到的最简单程序

供参考

#include <stdio.h>
static unsigned char map[1000];

static void init()
{
int i, j;

for(i = 2; i < 1000; i ++)
{
if(map[i]) continue;
for(j = i*2; j < 1000; j += i)
map[j] = 1;
}
}

static int reverse( int num )
{
int temp, target;

temp = num;
target = 0;
while( temp )
{
target = target*10 + temp % 10;
temp /= 10;
}
return target;
}

int main()
{
int i;
int r;
int aa[100];
int index = 0;

init();
scanf("%d", &i);
if(i%2)
{
printf("<1000 回文素数:\n");
for(i = 2; i < 1000; i ++)
{
if(map[i]) continue;
r = reverse(i);
if(!map[r]) 
{
printf("%d ", i);
if(i < 100) aa[index ++] = i;
}
}
printf("\n<100绝对素数:\n");
for(i = 0; i < index; i ++)
printf("%d ", aa[i]);
printf("\n");
}
else if(i > 9 && i < 21)
{
printf("%d = \n", i);
for(r = 3; r <= i/2; r += 2)
{
if(map[r]) continue;
if(map[i - r])continue;
printf("%d + %d\n", r, i - r);
}
}
return 0;
}

热心网友 时间:2023-09-08 00:11

// Prime_Number.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "stdlib.h"
#include "math.h"

int Palindrome_Prime_Number(int Num)
{
if(Num%2==0)return 0;
for(int i=3;i<Num;i+=2)
{
if(Num%i==0)return 0;
}
return Num;
}

int _tmain(int argc, _TCHAR* argv[])
{
int Input,a,b,Num,Number;

printf("请输入一个数:");
scanf("%d",&Input);

if(Input%2==0){
printf("可分为素数:\n");
for(a=1;a<=9;a+=2)
{
for(b=0;b<2;b++)
{
Num=b*10+a;
Number=Input-Num;
Num=Palindrome_Prime_Number(Num);
Number=Palindrome_Prime_Number(Number);
if(Num>0 && Number>0)printf("%d,%d\n",Num,Number);
}
}
}else{
printf("回文素数:\n");
printf("11\n");
for(a=1;a<=9;a+=2)
{
for(b=0;b<=9;b++)
{
Num=b*10+a*101;
Num=Palindrome_Prime_Number(Num);
if(Num>0)printf("%d\n",Num);
}
}
printf("\n");
printf("绝对素数\n");
for(a=1;a<=9;a+=2)
{
for(b=0;b<=9;b++)
{
Num=b*10+a;
Num=Palindrome_Prime_Number(Num);
if(Num>0){
Num=b+10*a;
Num=Palindrome_Prime_Number(Num);
if(Num>0)printf("%d\n",Num);
}
}
}
}
return 0;
}
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “大家好”用英语怎么说 急!!大家可不可以帮我翻译一下,万分感谢,谢谢了 在c语言中,int代表什么意思 有关数据结构栈的代码 intitation什么意思 I clearly remember lockint it. C#从int到double类型转换的问题 int是什么词性? int.表示什么词性 java中int 和 Integer 有什么区别 Java中Integer和int的区别 int什么是什么词性 谁能解释一下下面这段程序啊? int it= Integer.parseInt(intStr); double itf=(d... 用了加速器之后不能上网了 手机连wifi可以上网 网游加速器的四种加速模式分别是什么? 请问下在国外用迅游加速器可以吗? 腾讯手游加速器算外网吗 刚在网站上下了个加速器,安装后电脑就不能上网了... 美国快手用什么软件才能打得开 关于C语言中的int恳请各位高手解惑 (int&)怎么用? isdigit(int ch) 具体用法 签订书面的劳动合同原因是什么 申请确认劳动关系原因是什么 续签劳动合同原因及内容 《解除终止劳动合同人员登记表》上终止解除劳动合... 签订劳动合同申请书范文 劳动合同申请书怎么写? 企业解除劳动合同跟个人申请解除劳动合同有什么区别 十级工伤我个人要解除劳动合同原因怎么填写 个人原因解除劳动合同 公司单方面解除劳动合同,为什么要我写因个人原因? 解除劳动合同的原因怎么写 关于个人原因要求雇主解除劳动合同 我个人因公司原因想要终止劳动合同该怎么写 个人申请解除劳动合同为什么领取不到失业保险金 车抵贷利率一般多少? 车抵押贷款利息哪家低 贷款买车哪个银行利息低?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com