Phân tích số N thành tổng các thừa số
nguyên tố. Vd: 10 = 1 + 3^2.
nguyên tố. Vd: 10 = 1 + 3^2.
#include <stdio.h> #include <conio.h> void main() { int m, i, s; printf("nhap gia tri m: "); scanf("%d",&m); //kiểm tra các số nguyên tố từ m -1 đến 1 for(i = m - 1; i > 0; i--) // cho i chạy ngược để tìm được số mũ cao nhất. { if(IsPrime(i) != 0) { s = m - IsPrime(i)*IsPrime(i); if(s > 0) { printf("Gia tri can tim: %d = %d + %d*%d",m,s,IsPrime(i),IsPrime(i)); // in kết quả ra màn hình break; } } } getch(); } int IsPrime(int n) { int i; //nếu là 1,2,3 thì nó là số nguyên tố trả về chính nó. if(n <= 3 && n > 0) { return n; } else { //kiểm tra xem n có phải số nguyên tố không for( i = 2; i*i < n;i++) { if(n % i == 0) { return 0; } else { return n; } } } }
#include <stdio.h> #include <conio.h> void main() { int m, i, s; printf("nhap gia tri m: "); scanf("%d",&m); //kiểm tra các số nguyên tố từ m -1 đến 1 for(i = m - 1; i > 0; i--) // cho i chạy ngược để tìm được số mũ cao nhất. { if(IsPrime(i) != 0) { s = m - IsPrime(i)*IsPrime(i); if(s > 0) { printf("Gia tri can tim: %d = %d + %d*%d",m,s,IsPrime(i),IsPrime(i)); // in kết quả ra màn hình break; } } } getch(); } int IsPrime(int n) { int i; //nếu là 1,2,3 thì nó là số nguyên tố trả về chính nó. if(n <= 3 && n > 0) { return n; } else { //kiểm tra xem n có phải số nguyên tố không for( i = 2; i*i < n;i++) { if(n % i == 0) { return 0; } else { return n; } } } }
int A[100]; // mang luu so nguyen to int i,j=0; for(i = 2; i <=n; i ++) { if(n%i==0) { A[j]=i; j++; n=n-i; if(n%2==0) { i=1; } else i=2; } }
Comment