㈠ c語言編程 從鍵盤中輸入一個偶數,編程實現將該偶數拆分成兩個素數之和並輸出在屏幕上
#include<stdio.h>
int isprime(int n)
{
int i;
for(i=2;i<=n/2;i++)
if(n%i==0)
return 0;
return 1;
}
void main()
{
int n,i;
scanf("%d",&n);
for(i=2;i<n/2;i++)
if(isprime(i) && isprime(n-i))
printf("%d %d ",i,n-i);
}
(1)C語言拆分成和擴展閱讀:
(1)兩個連續整數中必是一個奇數一個偶數;
(2)奇數與奇數的和或差是偶數;偶數與奇數的和或差是奇數;任意多個偶數的和都是偶數;單數個奇數的和是奇數;雙數個奇數的和是偶數;
(3)兩個奇(偶)數的和或差是偶數;一個偶數與一個奇數的和或差一定是奇數;
(4)除2外所有的正偶數均為合數;
(5)相鄰偶數最大公約數為2,最小公倍數為它們乘積的一半;
㈡ 任意輸入5位數,對各位數字進行拆分,求和輸出.用c語言寫
給你一個思路,代碼就自己完成吧。
假設這個數是x,寫出來的形式是abced(a是萬位,b是千位,等等)
a=x整除10000
b=(x-a*10000)整除1000
c=(x-a*10000-b*1000)整除100
以此類推即可。
最後的求和結果=a+b+c+d+e
㈢ 如何用c語言將一個數分解成加數相加的形式
/*我特地到CSDN給你問的 剛來查看 發現有團隊用我在論壇的帖子的回復給你答案了 不過我還是把最佳的答案回復給你吧!*/
#include <stdio.h>
#include <stdlib.h>
void print(int res[], int num) {
static int L=0;
L++;
printf("%8d:",L);
for (int i=0;i<num;++i) {
printf(" %d", res[i]);
}
printf("\n");
}
void split(int n, int m) {// n表示總數,m表示最大因子
static int res[100];// 保存結果
static int num=-1;// 當前因子下標
if (n<m || n<0 || m<1) return;
num++;
if (0==n) {// 遞歸終止條件,為0不可再分,直接輸出
print(res,num+1);
num--;
return;
} else {
if (n==m) {// 不拆,直接輸出
res[num]=m;
print(res,num+1);
num--;
} else {
// 拆分出第一個
res[num]=m;
n=n-m;
if (m>n) m = n; // 最大因子不可能大於總數
for (int i=m;i>=1;--i) {// 循環,第二個因子可以繼續拆分,而且按照最大因子不同可以拆分成多個
split(n,i);
}
num--;
}
}
}
void Split(int n) {
if (n<=0) return;
if (100<n) {
printf("Up to 100\n");
return;
}
for (int i=n;i>=1;--i) {
split(n, i);
}
}
int main(int argc,char **argv) {
int num;
scanf("%d",&num);
if (argc<=1) Split(num);
else if (argc>=3) split(atoi(argv[1]),atoi(argv[2]));
else Split(atoi(argv[1]));
return 0;
}
㈣ C語言 任意輸入一個數,把各個數字分開,然後相加,怎麼做
你可以再新建一個變數來累加:
#include<stdio.h>
intmain()
{
inta,s=0,k;
scanf("%d",&a);
while(a)
{
k=a%10;
printf("%d ",k);
a=a/10;
s=s+k;/*這里是關鍵,用s變數來累加,注意s一開始要初始化為0*/
}
printf("%d",s);
}
㈤ C語言:將10-20之間的全部偶數分解為兩個素數之和。這個該怎麼弄謝謝
#include<stdio.h>
//2-20的素數-----235711131719
//1020的偶數---101214161820
intchaifen(intx,intsushu[]);
intmain()
{
intsushu[8]={2,3,5,7,11,13,17,19};
for(inti=10;i<=20;i++)
{
if(i%2==0)chaifen(i,sushu);
}
return0;
}
//拆分函數,用來把一個偶數拆分為兩個素數之和
intchaifen(intx,intsushu[])
{
inti,j;
for(i=0;i<7;i++)
{
for(j=i+1;j<8;j++)
{
if(x==sushu[i]+sushu[j]){
printf("%d=%d+%d ",x,sushu[i],sushu[j]); //如果找到了,就輸出這個素數組合
return0; //結束函數
}
}
}
return0;
}