Страницы

среда, 23 апреля 2014 г.

Разложение на простые множители

Разложение на простые множители (С++)

Пишем программу, которая будет осуществлять разложение числа на простые множители, например, 1053=3*3*3*3*13.
Используем простой метод – будем делить последовательно число М на числа k=2, 3 и так далее, пока М будет делиться и k не превысит М/2. Для соблюдения условий применим цикл с постусловием (do – while).
Для проверки, является ли число М простым, введем переменную j и присвоим ей значение 1. Если найдется делитель, то переменная j обнуляется. Это значит, что число не является простым.

#include <iostream.h>
void main()
{
    long M,M1,k=2;
    int j=1;
    cout<<"Введите целое число: ";
    cin>>M;
    M1=M/2;
    cout<<M<<" = ";
    do
    {
        if(M%k==0)
        {
            j=0;
            M=M/k;
            cout<<k;
            if(M!=1) cout<<"*";
        }
        else k++;
    } while (k<=M1);
    if(j==1) cout<<"простое число";
    cin.get();
}